fix(hooks): [use-escape-keydown] fix memory leak (#8005) (#8060)

This commit is contained in:
pupu
2022-07-27 14:09:23 +08:00
committed by GitHub
parent 1a66672b32
commit 7a04a34b79

View File

@@ -4,16 +4,16 @@ import { EVENT_CODE } from '@element-plus/constants'
let registeredEscapeHandlers: ((e: KeyboardEvent) => void)[] = []
export const useEscapeKeydown = (handler: (e: KeyboardEvent) => void) => {
const cachedHandler = (e: Event) => {
const event = e as KeyboardEvent
if (event.key === EVENT_CODE.esc) {
registeredEscapeHandlers.forEach((registeredHandler) =>
registeredHandler(event)
)
}
const cachedHandler = (e: Event) => {
const event = e as KeyboardEvent
if (event.key === EVENT_CODE.esc) {
registeredEscapeHandlers.forEach((registeredHandler) =>
registeredHandler(event)
)
}
}
export const useEscapeKeydown = (handler: (e: KeyboardEvent) => void) => {
onMounted(() => {
if (registeredEscapeHandlers.length === 0) {
document.addEventListener('keydown', cachedHandler)