From 00fecab32579b8140c8573c5a65028c66cfde8b2 Mon Sep 17 00:00:00 2001 From: streamich Date: Thu, 28 Mar 2019 19:11:25 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20keep=20keyboard=20events?= =?UTF-8?q?=20in=20useKeyPress=20hook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/__stories__/useKeyPress.story.tsx | 2 +- src/useKeyPress.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/__stories__/useKeyPress.story.tsx b/src/__stories__/useKeyPress.story.tsx index 59a6998371..16cdba71c3 100644 --- a/src/__stories__/useKeyPress.story.tsx +++ b/src/__stories__/useKeyPress.story.tsx @@ -8,7 +8,7 @@ const keys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']; const Demo = () => { const states = []; - for (const key of keys) states.push(useKeyPress(key)); + for (const key of keys) states.push(useKeyPress(key)[0]); return ( diff --git a/src/useKeyPress.ts b/src/useKeyPress.ts index 352867faff..003814ba4d 100644 --- a/src/useKeyPress.ts +++ b/src/useKeyPress.ts @@ -2,10 +2,10 @@ import {useState} from 'react'; import useKey, {KeyFilter} from './useKey'; const useKeyPress = (keyFilter: KeyFilter) => { - const [isDown, set] = useState(false); - useKey(keyFilter, () => set(true), {event: 'keydown'}, [isDown]); - useKey(keyFilter, () => set(false), {event: 'keyup'}, [isDown]); - return isDown; + const [state, set] = useState<[boolean, null | KeyboardEvent]>([false, null]); + useKey(keyFilter, (event) => set([true, event]), {event: 'keydown'}, [state]); + useKey(keyFilter, (event) => set([false, event]), {event: 'keyup'}, [state]); + return state; }; export default useKeyPress;