{"version":3,"file":"useClickOutside.cjs","sources":["../../../../src/hooks/useClickOutside/useClickOutside.ts"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\n/**\n * Hook for å sette opp en lytter ved klikk utenfor et element.\n * @param ref Elementet du ønsker å sjekke om en klikk er utenfor.\n * @param fn Callback-funksjon som kalles når det klikkes utenfor elementet.\n */\nexport function useClickOutside(\n    ref: RefObject<HTMLElement | null> | null,\n    fn: () => void,\n): void {\n    function handleClickOutside(event: MouseEvent) {\n        if (ref?.current && !ref.current.contains(event.target as Node)) {\n            fn();\n        }\n    }\n\n    useEffect(() => {\n        if (ref) {\n            document?.addEventListener(\"click\", handleClickOutside);\n        }\n        return () => {\n            document?.removeEventListener(\"click\", handleClickOutside);\n        };\n    });\n}\n"],"names":["ref","fn","handleClickOutside","event","current","contains","target","useEffect","document","addEventListener","removeEventListener"],"mappings":"iIAOO,SACHA,EACAC,GAEA,SAASC,EAAmBC,GACpBH,GAAKI,UAAYJ,EAAII,QAAQC,SAASF,EAAMG,SAC5CL,GAER,CAEAM,EAAAA,UAAU,KACFP,GACAQ,UAAUC,iBAAiB,QAASP,GAEjC,KACHM,UAAUE,oBAAoB,QAASR,KAGnD"}