49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
import type { Metadata } from "next";
|
|
import Link from "next/link";
|
|
import type { ReactNode } from "react";
|
|
import { Gamepad2, Settings } from "lucide-react";
|
|
import { Toaster } from "@/components/ui/sonner";
|
|
import "./globals.css";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "English PK",
|
|
description: "字母单词 PK 赛",
|
|
};
|
|
|
|
export default function RootLayout({ children }: Readonly<{ children: ReactNode }>) {
|
|
return (
|
|
<html lang="zh-CN">
|
|
<body>
|
|
<div className="min-h-screen bg-[linear-gradient(135deg,#e8f8f7_0%,#fff1f5_45%,#eef6ff_100%)]">
|
|
<header className="border-b bg-white/80 backdrop-blur">
|
|
<div className="mx-auto flex h-14 max-w-7xl items-center justify-between px-4 sm:px-6">
|
|
<Link href="/pk" className="flex items-center gap-2 font-semibold text-slate-900">
|
|
<span className="grid size-8 place-items-center rounded-md bg-rose-500 text-white">PK</span>
|
|
English PK
|
|
</Link>
|
|
<nav className="flex items-center gap-1">
|
|
<Link
|
|
href="/pk"
|
|
className="inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-slate-700 hover:bg-slate-100"
|
|
>
|
|
<Gamepad2 className="size-4" />
|
|
PK页面
|
|
</Link>
|
|
<Link
|
|
href="/admin"
|
|
className="inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-slate-700 hover:bg-slate-100"
|
|
>
|
|
<Settings className="size-4" />
|
|
后台管理
|
|
</Link>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
{children}
|
|
</div>
|
|
<Toaster />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|