- eslint.config.mjs: flat config built on eslint-config-next's flat array (core-web-vitals + typescript + Next plugin), with build/generated artifacts ignored and the aggressive react-hooks v6 React-Compiler rules downgraded to warnings so `pnpm run lint` passes clean (0 errors, 88 warnings of burn-down debt) instead of failing. Previously `eslint .` failed outright — no config and no eslint binary were installed. - Install eslint, @eslint/js, eslint-config-next, typescript-eslint, globals as devDeps (dev-only; prod Docker build is unaffected). - package.json: add `typecheck` (tsc --noEmit) and `test:run` scripts. - app/not-found.tsx: escape apostrophes (react/no-unescaped-entities). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import Link from 'next/link'
|
|
import { FileQuestion, Home, ArrowLeft } from 'lucide-react'
|
|
|
|
export default function NotFound() {
|
|
return (
|
|
<div className="min-h-screen bg-background flex items-center justify-center p-4">
|
|
<div className="max-w-md w-full text-center">
|
|
<div className="w-16 h-16 rounded-full bg-muted flex items-center justify-center mx-auto mb-6">
|
|
<FileQuestion className="w-8 h-8 text-muted-foreground" />
|
|
</div>
|
|
|
|
<h1 className="text-6xl font-bold text-foreground mb-2 font-mono">404</h1>
|
|
|
|
<h2 className="text-xl font-semibold text-foreground mb-2">
|
|
Page not found
|
|
</h2>
|
|
|
|
<p className="text-muted-foreground mb-8">
|
|
The page you’re looking for doesn’t exist or has been moved.
|
|
</p>
|
|
|
|
<div className="flex flex-col sm:flex-row gap-3 justify-center">
|
|
<Link
|
|
href="/dashboard"
|
|
className="inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-md bg-primary text-primary-foreground font-medium text-sm hover:bg-primary/90 transition-colors"
|
|
>
|
|
<Home className="w-4 h-4" />
|
|
Go to Dashboard
|
|
</Link>
|
|
|
|
<Link
|
|
href="/"
|
|
className="inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-md border border-border text-foreground font-medium text-sm hover:bg-accent transition-colors"
|
|
>
|
|
<ArrowLeft className="w-4 h-4" />
|
|
Back to Home
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|