import { Head, Link } from '@inertiajs/react'; import { AlertTriangle, Home, ServerCrash } from 'lucide-react'; import AppearanceToggle from '@/components/appearance-toggle'; import { Button } from '@/components/ui/button'; import { home } from '@/routes'; type ErrorProps = { message?: string | null; status?: number | null; }; const statusConfig: Record< number, { description: string; icon: typeof AlertTriangle; title: string } > = { 403: { description: 'Kamu tidak memiliki akses ke halaman ini.', icon: AlertTriangle, title: 'Akses Ditolak', }, 404: { description: 'Halaman yang kamu cari tidak ditemukan atau sudah dipindahkan.', icon: AlertTriangle, title: 'Halaman Tidak Ditemukan', }, 503: { description: 'Server sedang tidak bisa dihubungi. Silakan coba beberapa saat lagi.', icon: ServerCrash, title: 'Server Tidak Tersedia', }, }; export default function Error({ message, status }: ErrorProps) { const config = (status && statusConfig[status]) ?? { description: message ?? 'Terjadi kesalahan yang tidak terduga.', icon: AlertTriangle, title: 'Terjadi Kesalahan', }; const Icon = config.icon; return ( <>
{status && (

{status}

)}

{config.title}

{message ?? config.description}

); }