UNPKG

use-keybinds

Version:

Lightweight keybind library for React

1 lines 1.61 kB
{"version":3,"sources":["../../src/helpers/useFocusedElement.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\r\n\r\nconst useFocusedElement = (): Element | null => {\r\n const [focusedElement, setFocusedElement] = useState<Element | null>(\r\n typeof window !== \"undefined\" ? document.activeElement : null,\r\n );\r\n\r\n const handleFocusIn = useCallback(() => {\r\n setFocusedElement(document.activeElement);\r\n }, []);\r\n\r\n const handleFocusOut = useCallback(() => {\r\n setFocusedElement(null);\r\n }, []);\r\n\r\n useEffect(() => {\r\n addEventListener(\"focusin\", handleFocusIn);\r\n addEventListener(\"focusout\", handleFocusOut);\r\n return () => {\r\n removeEventListener(\"focusin\", handleFocusIn);\r\n removeEventListener(\"focusout\", handleFocusOut);\r\n };\r\n }, [handleFocusIn, handleFocusOut]);\r\n\r\n return focusedElement;\r\n};\r\n\r\nexport default useFocusedElement;\r\n"],"mappings":";AAAA,OAAS,eAAAA,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QAEjD,IAAMC,EAAoB,IAAsB,CAC9C,GAAM,CAACC,EAAgBC,CAAiB,EAAIH,EAC1C,OAAO,OAAW,IAAc,SAAS,cAAgB,IAC3D,EAEMI,EAAgBN,EAAY,IAAM,CACtCK,EAAkB,SAAS,aAAa,CAC1C,EAAG,CAAC,CAAC,EAECE,EAAiBP,EAAY,IAAM,CACvCK,EAAkB,IAAI,CACxB,EAAG,CAAC,CAAC,EAEL,OAAAJ,EAAU,KACR,iBAAiB,UAAWK,CAAa,EACzC,iBAAiB,WAAYC,CAAc,EACpC,IAAM,CACX,oBAAoB,UAAWD,CAAa,EAC5C,oBAAoB,WAAYC,CAAc,CAChD,GACC,CAACD,EAAeC,CAAc,CAAC,EAE3BH,CACT,EAEOI,EAAQL","names":["useCallback","useEffect","useState","useFocusedElement","focusedElement","setFocusedElement","handleFocusIn","handleFocusOut","useFocusedElement_default"]}