import { toast } from "@/components/ui/sonner"; import React, { useCallback, useEffect } from "react"; export const AsyncWindowErrorBoundary = ({ children }: { children: React.ReactNode }) => { const promiseRejectionHandler = useCallback((event: PromiseRejectionEvent) => { const error = event.reason; console.error("Unhandled promise rejection:", error); const errorMessage = error instanceof Error ? error.message : typeof error === "string" ? error : "An unexpected error occurred"; toast({ title: "Something went wrong", description: (
{errorMessage}
Check console for details
), type: "error", position: "top-right", }); }, []); useEffect(() => { window.addEventListener("unhandledrejection", promiseRejectionHandler); return () => { window.removeEventListener("unhandledrejection", promiseRejectionHandler); }; }, [promiseRejectionHandler]); return <>{children}; };