ErrorPage.tsx

 1// Global error boundary page. Rendered by TanStack Router when a route throws.
 2
 3import { Link, useRouter } from "@tanstack/react-router";
 4import { AlertTriangle } from "lucide-react";
 5
 6import { Button } from "@/components/ui/button";
 7
 8export function ErrorPage({ error }: { error?: Error }) {
 9  const router = useRouter();
10
11  const message = error?.message ?? "An unexpected error occurred.";
12
13  return (
14    <div className="flex min-h-screen flex-col items-center justify-center gap-4 text-center">
15      <AlertTriangle className="text-muted-foreground size-10" />
16      <p className="text-muted-foreground text-sm">{message}</p>
17      <div className="flex gap-2">
18        <Button
19          variant="outline"
20          size="sm"
21          onClick={() => {
22            void router.invalidate();
23          }}
24        >
25          Try again
26        </Button>
27        <Button variant="outline" size="sm" asChild>
28          <Link to="/">Go home</Link>
29        </Button>
30      </div>
31    </div>
32  );
33}