UNPKG

use-keybinds

Version:

Lightweight keybind library for React

1 lines 1.56 kB
{"version":3,"sources":["../../src/helpers/useFocusedElement.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\n\nconst useFocusedElement = (): Element | null => {\n const [focusedElement, setFocusedElement] = useState<Element | null>(\n typeof window !== \"undefined\" ? document.activeElement : null\n );\n\n const handleFocusIn = useCallback(() => {\n setFocusedElement(document.activeElement);\n }, []);\n\n const handleFocusOut = useCallback(() => {\n setFocusedElement(null);\n }, []);\n\n useEffect(() => {\n addEventListener(\"focusin\", handleFocusIn);\n addEventListener(\"focusout\", handleFocusOut);\n return () => {\n removeEventListener(\"focusin\", handleFocusIn);\n removeEventListener(\"focusout\", handleFocusOut);\n };\n }, [handleFocusIn, handleFocusOut]);\n\n return focusedElement;\n};\n\nexport default useFocusedElement;\n"],"mappings":";AAAA,OAAgB,eAAAA,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QAExD,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"]}