(keyEventType: KeyEvent, handler: KeyHandler)
| 20 | type KeyEvent = 'keydown' | 'keyup'; |
| 21 | |
| 22 | export function useKeyboardInput(keyEventType: KeyEvent, handler: KeyHandler) { |
| 23 | const { joystickEnabled } = useHeader(); |
| 24 | |
| 25 | useEffect(() => { |
| 26 | if (!joystickEnabled) return; |
| 27 | |
| 28 | const keyEventHandler = (event: KeyboardEvent) => { |
| 29 | if (keys.includes(event.key as MoveKeyType)) { |
| 30 | handler(event.key as MoveKeyType, event); |
| 31 | } |
| 32 | }; |
| 33 | |
| 34 | window.addEventListener(keyEventType, keyEventHandler); |
| 35 | |
| 36 | return () => { |
| 37 | window.removeEventListener(keyEventType, keyEventHandler); |
| 38 | }; |
| 39 | }, [handler]); |
| 40 | } |
no test coverage detected