{"version":3,"file":"use-error-handler.cjs","names":[],"sources":["../../src/error-boundary/use-error-handler.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\n/**\n * Hook that propagates errors to the nearest {@link ErrorBoundary}.\n *\n * React error boundaries only catch errors thrown during render. Async errors\n * (failed mutations, websocket failures, etc.) need to be re-thrown in a\n * render pass — that is what `throwError` does.\n *\n * @example\n * const throwError = useErrorHandler();\n * useEffect(() => {\n *     stream.on(\"error\", throwError);\n * }, []);\n */\nexport function useErrorHandler(): (error: unknown) => void {\n    const [, setState] = useState<Error | null>(null);\n    return useCallback((error: unknown) => {\n        setState(() => {\n            throw error instanceof Error ? error : new Error(String(error));\n        });\n    }, []);\n}\n"],"mappings":"uBAeA,SAAgB,GAA4C,CACxD,GAAM,EAAG,IAAA,EAAY,EAAA,SAAA,CAAuB,IAAI,EAChD,OAAA,EAAO,EAAA,YAAA,CAAa,GAAmB,CACnC,MAAe,CACX,MAAM,aAAiB,MAAQ,EAAY,MAAM,OAAO,CAAK,CAAC,CAClE,CAAC,CACL,EAAG,CAAC,CAAC,CACT"}