SPB Git forge
3commits 1branches 0releases
417.0 KBsize
maindefault branch
10 days agolast push
TypeScript 66.5% Python 30.9% JavaScript 1.4% CSS 0.7%
1.3 KB · 24 lines tsx
Raw Blame History
1'use client';2import Link from 'next/link';3import { useEffect } from 'react';4import { routes } from '@/lib/site';56/** Route-level error boundary: never shows stack traces; offers retry and degrades to search/detail pages. */7export default function ErrorPage({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) {8  useEffect(() => {9    console.error('route error', error.digest ?? error.message);10  }, [error]);11  return (12    <div className="container-x mx-auto flex max-w-[1600px] flex-col items-start justify-center py-24 md:py-40">13      <p className="eyebrow text-warn">Telemetry interrupted</p>14      <h1 className="display mt-3 text-4xl md:text-6xl">Something went wrong.</h1>15      <p className="mt-4 max-w-md text-ink-2">The data service did not respond in time. Cached pages and search keep working; this view can be retried.</p>16      <div className="mt-8 flex gap-3">17        <button type="button" onClick={reset} className="rounded-md bg-accent px-4 py-2.5 text-sm font-medium text-accent-ink">Retry</button>18        <Link href={routes.home()} className="rounded-md border border-rule-strong px-4 py-2.5 text-sm text-ink hover:bg-plane-2">Home</Link>19      </div>20      {error.digest && <p className="mono mt-6 text-xs text-ink-3">ref {error.digest}</p>}21    </div>22  );23}24