d7a35b2d7a
Runtime errors in components now show a friendly "Something went wrong" screen instead of a white page. Timeline and staffing panel are individually wrapped. Route-level error.tsx handles server component errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import Link from "next/link";
|
|
|
|
export default function NotFound() {
|
|
return (
|
|
<div className="flex flex-col items-center justify-center min-h-[400px] p-8 text-center">
|
|
<div className="w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center mb-4">
|
|
<svg
|
|
className="w-6 h-6 text-gray-500 dark:text-gray-400"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
viewBox="0 0 24 24"
|
|
>
|
|
<path
|
|
strokeLinecap="round"
|
|
strokeLinejoin="round"
|
|
strokeWidth={2}
|
|
d="M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
|
/>
|
|
</svg>
|
|
</div>
|
|
<h2 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">
|
|
Page not found
|
|
</h2>
|
|
<p className="text-sm text-gray-500 dark:text-gray-400 mb-6 max-w-sm">
|
|
The page you are looking for does not exist or has been moved.
|
|
</p>
|
|
<Link
|
|
href="/dashboard"
|
|
className="px-4 py-2 text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 rounded-lg transition-colors"
|
|
>
|
|
Go to dashboard
|
|
</Link>
|
|
</div>
|
|
);
|
|
}
|