"use client"; // Error boundaries must be Client Components
import {
Activity,
ArrowLeftRight,
BookUser,
Database,
Home,
RefreshCw,
UserRoundSearch,
} from "lucide-react";
import Link from "next/link";
import { useEffect, useState } from "react";
import Dottore from "#/assets/dottore.webp";
import Background from "#/bg.webp";
import Image from "@/components/image";
import { SimpleTooltip } from "@/components/tooltip";
import { Button } from "@/components/ui/button";
import { Skeleton } from "@/components/ui/skeleton";
import { Spinner } from "@/components/ui/spinner";
export default function ErrorPage({
error,
reset,
}: {
error: Error & { digest?: string };
reset: () => void;
}) {
const [loading, setLoading] = useState(false);
const [goingHome, goHome] = useState(false);
const [message, setMessage] = useState("");
const [health, setHealth] = useState<{
database: boolean;
enka: boolean;
amber: boolean;
red: boolean;
}>();
useEffect(() => {
// Log the error to an error reporting service
console.error(error);
const messages = [
"หมอวิจัยหน้านี้จนพังแล้ว...",
"หมอไม่ชอบหน้านี้...",
"หมอเตรียมพื้นที่ตรงนี้สำหรับการทดลอง...",
"หมอกำลังศึกษาหน้านี้อยู่...",
"หมอจะทดลองกับหน้านี้...",
];
setMessage(messages[Math.floor(Math.random() * messages.length)]);
fetch("/api/health")
.then((r) => r.json())
.then(setHealth);
}, [error]);
return (
<>