From 0f67bc5c8e043e6a90d4c59010b4e5438949b0a7 Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 23 Mar 2022 18:14:37 +0100 Subject: [PATCH] fix(keyPress): reset on blur fixes #1931 --- src/hooks/useKeyPress.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/hooks/useKeyPress.ts b/src/hooks/useKeyPress.ts index 20e3e296..bc5f23f6 100644 --- a/src/hooks/useKeyPress.ts +++ b/src/hooks/useKeyPress.ts @@ -6,7 +6,7 @@ type Keys = Array; type PressedKeys = Set; type KeyOrCode = 'key' | 'code'; export interface UseKeyPressOptions { - target: Document | HTMLElement | ShadowRoot | null; + target: Window | Document | HTMLElement | ShadowRoot | null; } const doc = typeof document !== 'undefined' ? document : null; @@ -66,24 +66,16 @@ export default (keyCode: KeyCode | null = null, options: UseKeyPressOptions = { setKeyPressed(false); }; - const onVisibilityChange = () => { - if (document.hidden) { - resetHandler(); - } - }; - options?.target?.addEventListener('keydown', downHandler as EventListenerOrEventListenerObject); options?.target?.addEventListener('keyup', upHandler as EventListenerOrEventListenerObject); - options?.target?.addEventListener('blur', resetHandler); - options?.target?.addEventListener('visibilitychange', onVisibilityChange); + window.addEventListener('blur', resetHandler); return () => { pressedKeys.current.clear(); options?.target?.removeEventListener('keydown', downHandler as EventListenerOrEventListenerObject); options?.target?.removeEventListener('keyup', upHandler as EventListenerOrEventListenerObject); - options?.target?.removeEventListener('blur', resetHandler); - options?.target?.removeEventListener('visibilitychange', onVisibilityChange); + window.removeEventListener('blur', resetHandler); }; } }, [keyCode, setKeyPressed]);