{"version":3,"file":"use-timeout.cjs","names":[],"sources":["../../src/hooks/use-timeout.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useLatestRef } from \"./use-latest-ref\";\n\n/**\n * Run a callback after `delay` ms. Pass `null` to disable. Resets when\n * `delay` changes; the callback ref always points at the latest closure.\n *\n * @example\n * useTimeout(() => setShow(false), show ? 3000 : null);\n */\nexport function useTimeout(fn: () => void, delay: number | null): void {\n    const fnRef = useLatestRef(fn);\n\n    useEffect(() => {\n        if (delay === null) return;\n        const id = setTimeout(() => fnRef.current(), delay);\n        return () => clearTimeout(id);\n    }, [delay, fnRef]);\n}\n"],"mappings":"+DAUA,SAAgB,EAAW,EAAgB,EAA4B,CACnE,IAAM,EAAQ,EAAA,aAAa,CAAE,GAE7B,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,IAAU,KAAM,OACpB,IAAM,EAAK,eAAiB,EAAM,QAAQ,EAAG,CAAK,EAClD,UAAa,aAAa,CAAE,CAChC,EAAG,CAAC,EAAO,CAAK,CAAC,CACrB"}