"use client"; import { useEffect } from "react"; import { Button } from "@/components/ui/button"; import { AlertTriangle, RefreshCcw, Home, ArrowLeft, HelpCircle } from "lucide-react"; import { useRouter } from "next/navigation"; import Link from "next/link"; interface ErrorProps { error: Error & { digest?: string }; reset: () => void; } export default function Error({ error, reset }: ErrorProps) { useEffect(() => { // Log the error to an error reporting service console.error("Application error:", error); }, [error]); const router = useRouter(); // Determine error type to show appropriate message const getErrorMessage = () => { if (error.message.includes("FARM_NOT_FOUND")) { return "The farm you're looking for could not be found."; } if (error.message.includes("CROP_NOT_FOUND")) { return "The crop you're looking for could not be found."; } if (error.message.includes("UNAUTHORIZED")) { return "You don't have permission to access this resource."; } if (error.message.includes("NETWORK")) { return "Network error. Please check your internet connection."; } return "We apologize for the inconvenience. An unexpected error has occurred."; }; return (
{/* Decorative elements */}
{/* Main icon */}

Something went wrong

{getErrorMessage()}

{error.message && !["FARM_NOT_FOUND", "CROP_NOT_FOUND", "UNAUTHORIZED"].includes(error.message) && (

Error details:

{error.message}

{error.digest &&

Error ID: {error.digest}

}
)}

Need help?{" "} Contact Support

Support Code: {error.digest ? error.digest.substring(0, 8) : "Unknown"}

); }