From 3c85db4abb66ceb79afb9c64454f9869e30e3b2d Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 8 Jul 2022 13:50:14 +0800 Subject: [PATCH] fix(useMagicKeys): only clean up used keys, close #1793 --- packages/core/useMagicKeys/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core/useMagicKeys/index.ts b/packages/core/useMagicKeys/index.ts index ba97735eba2..323e7007db3 100644 --- a/packages/core/useMagicKeys/index.ts +++ b/packages/core/useMagicKeys/index.ts @@ -84,6 +84,7 @@ export function useMagicKeys(options: UseMagicKeysOptions = {}): any { const obj = { toJSON() { return {} }, current } const refs: Record = useReactive ? reactive(obj) : obj const metaDeps = new Set() + const usedKeys = new Set() function setRefs(key: string, value: boolean) { if (key in refs) { @@ -95,7 +96,7 @@ export function useMagicKeys(options: UseMagicKeysOptions = {}): any { } function reset() { - for (const key of Object.keys(refs)) { + for (const key of usedKeys) { if (useReactive) refs[key] = false else @@ -116,8 +117,10 @@ export function useMagicKeys(options: UseMagicKeysOptions = {}): any { current.delete(e.code) } - for (const key of values) + for (const key of values) { + usedKeys.add(key) setRefs(key, value) + } // #1312 // In macOS, keys won't trigger "keyup" event when Meta key is released