element-plus/packages/directives/resize/index.ts
三咲智子 6503e55277
refactor(utils): migrate utils (#5949)
* 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
2022-02-11 11:03:15 +08:00

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