Complete admin panel for content management: - SQLite database with better-sqlite3, seed script from content.ts - Simple password auth with HMAC-signed cookies (Edge + Node compatible) - 9 section editors: meta, hero, about, team, classes, schedule, pricing, FAQ, contact - Team CRUD with image upload and drag reorder - Schedule editor with Google Calendar-style visual timeline (colored blocks, overlap detection, click-to-add) - All public components refactored to accept data props from DB (with fallback to static content) - Middleware protecting /admin/* and /api/admin/* routes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
22 lines
664 B
TypeScript
22 lines
664 B
TypeScript
import { Button } from "@/components/ui/Button";
|
||
import { Header } from "@/components/layout/Header";
|
||
import { Footer } from "@/components/layout/Footer";
|
||
|
||
export default function NotFound() {
|
||
return (
|
||
<>
|
||
<Header />
|
||
<main>
|
||
<div className="flex min-h-[60vh] flex-col items-center justify-center px-4 text-center">
|
||
<h1 className="font-display text-6xl font-bold">404</h1>
|
||
<p className="body-text mt-4 text-lg">Страница не найдена</p>
|
||
<div className="mt-8">
|
||
<Button href="/">На главную</Button>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
<Footer />
|
||
</>
|
||
);
|
||
}
|