element-plus/packages/hooks/use-events/index.ts
三咲智子 55348b30b6
style: use prettier (#3228)
* style: use prettier

* style: just prettier format, no code changes

* style: eslint fix
object-shorthand, prefer-const

* style: fix no-void

* style: no-console
2021-09-04 19:29:28 +08:00

24 lines
493 B
TypeScript

import { watch } from 'vue'
import { on, off } from '@element-plus/utils/dom'
import type { Ref } from 'vue'
export type Event = {
name: string
handler: (...args: any[]) => any
}
export default (el: Ref<HTMLElement>, events: Event[]) => {
watch(el, (val) => {
if (val) {
events.forEach(({ name, handler }) => {
on(el.value, name, handler)
})
} else {
events.forEach(({ name, handler }) => {
off(el.value, name, handler)
})
}
})
}