mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-15 09:50:58 +08:00
55348b30b6
* style: use prettier * style: just prettier format, no code changes * style: eslint fix object-shorthand, prefer-const * style: fix no-void * style: no-console
28 lines
512 B
TypeScript
28 lines
512 B
TypeScript
import { watch } from 'vue'
|
|
import { on, off } from '@element-plus/utils/dom'
|
|
|
|
import type { Ref } from 'vue'
|
|
|
|
export default (
|
|
indicator: Ref<boolean>,
|
|
evt: string,
|
|
cb: (e: Event) => boolean
|
|
) => {
|
|
const prevent = (e: Event) => {
|
|
if (cb(e)) {
|
|
e.stopImmediatePropagation()
|
|
}
|
|
}
|
|
watch(
|
|
() => indicator.value,
|
|
(val) => {
|
|
if (val) {
|
|
on(document, evt, prevent, true)
|
|
} else {
|
|
off(document, evt, prevent, true)
|
|
}
|
|
},
|
|
{ immediate: true }
|
|
)
|
|
}
|