UNPKG

expo-key-event

Version:

Provides an interface for reading key events such as from external bluetooth keyboards on Android, iOS and Web.

31 lines 1.03 kB
import { useCallback, useEffect } from "react"; /** * * @param listenOnMount Pass 'false' to prevent automatic key event listening * - Use startListening/stopListening to control the listener manually * @returns * */ export function useKeyEventListener(listener, listenOnMount = true) { const onKeyDown = useCallback((event) => listener({ key: event.code }), [listener]); const startListening = useCallback(() => addEventListener("keydown", onKeyDown), [onKeyDown]); const stopListening = useCallback(() => removeEventListener("keydown", onKeyDown), [onKeyDown]); useEffect(() => { if (listenOnMount) startListening(); return () => { stopListening(); }; }, [listenOnMount, startListening, stopListening]); return { /** * Start listening for key events */ startListening, /** * Stop listening for key events */ stopListening, }; } //# sourceMappingURL=useKeyEventListener.web.js.map