(
key: KeyFilter,
fn: Handler = noop,
opts: UseKeyOptions<T> = {},
deps: DependencyList = [key]
)
| 22 | : () => false; |
| 23 | |
| 24 | const useKey = <T extends UseEventTarget>( |
| 25 | key: KeyFilter, |
| 26 | fn: Handler = noop, |
| 27 | opts: UseKeyOptions<T> = {}, |
| 28 | deps: DependencyList = [key] |
| 29 | ) => { |
| 30 | const { event = 'keydown', target, options } = opts; |
| 31 | const useMemoHandler = useMemo(() => { |
| 32 | const predicate: KeyPredicate = createKeyPredicate(key); |
| 33 | const handler: Handler = (handlerEvent) => { |
| 34 | if (predicate(handlerEvent)) { |
| 35 | return fn(handlerEvent); |
| 36 | } |
| 37 | }; |
| 38 | return handler; |
| 39 | }, deps); |
| 40 | useEvent(event, useMemoHandler, target, options); |
| 41 | }; |
| 42 | |
| 43 | export default useKey; |
no test coverage detected
searching dependent graphs…