UNPKG

expo-key-event

Version:

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

35 lines 1.1 kB
import { useCallback, useEffect, useState } from "react"; /** * * @param listenOnMount Pass 'false' to prevent automatic key event listening * - Use startListening/stopListening to control the listener manually * @returns * */ export function useKeyEvent(listenOnMount = true) { const [keyEvent, setKeyEvent] = useState(null); const onKeyDown = useCallback((event) => { setKeyEvent({ key: event.code }); }, []); 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, keyEvent, }; } //# sourceMappingURL=useKeyEvent.web.js.map