mirror of
https://github.com/element-plus/element-plus.git
synced 2024-12-27 03:01:14 +08:00
6503e55277
* refactor(utils-v2): migrate utils * refactor(utils-v2): migrate utils * refactor(utils-v2): migrate utils * refactor(utils): remove * refactor(utils): rename * refactor(utils): move EVENT_CODE to constants * refactor: remove generic
22 lines
540 B
TypeScript
22 lines
540 B
TypeScript
import { addResizeListener, removeResizeListener } from '@element-plus/utils'
|
|
|
|
import type { ObjectDirective, DirectiveBinding } from 'vue'
|
|
|
|
declare interface ResizeEl extends HTMLElement {
|
|
_handleResize?: () => void
|
|
}
|
|
|
|
const Resize: ObjectDirective = {
|
|
beforeMount(el: ResizeEl, binding: DirectiveBinding) {
|
|
el._handleResize = () => {
|
|
el && binding.value?.(el)
|
|
}
|
|
addResizeListener(el, el._handleResize)
|
|
},
|
|
beforeUnmount(el: ResizeEl) {
|
|
removeResizeListener(el, el._handleResize)
|
|
},
|
|
}
|
|
|
|
export default Resize
|