- Added package.json with dependencies and scripts for development, build, and linting. - Created postcss.config.mjs for Tailwind CSS integration. - Added SVG assets for UI components including file, globe, next, vercel, and window icons. - Configured TypeScript with tsconfig.json for strict type checking and module resolution.
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import Link from "next/link";
|
|
import { type ReactNode } from "react";
|
|
|
|
const NAV_LINKS = [
|
|
{ href: "/tv", label: "TV" },
|
|
{ href: "/dashboard", label: "Dashboard" },
|
|
{ href: "/docs", label: "Docs" },
|
|
];
|
|
|
|
export default function MainLayout({ children }: { children: ReactNode }) {
|
|
return (
|
|
<div className="flex min-h-screen flex-col bg-zinc-950 text-zinc-100">
|
|
<header className="sticky top-0 z-50 border-b border-zinc-800 bg-zinc-950/80 backdrop-blur">
|
|
<nav className="mx-auto flex h-14 max-w-7xl items-center justify-between px-6">
|
|
<Link href="/tv" className="text-sm font-semibold tracking-widest text-zinc-100 uppercase">
|
|
K-TV
|
|
</Link>
|
|
<ul className="flex items-center gap-1">
|
|
{NAV_LINKS.map(({ href, label }) => (
|
|
<li key={href}>
|
|
<Link
|
|
href={href}
|
|
className="rounded-md px-3 py-1.5 text-sm text-zinc-400 transition-colors hover:bg-zinc-800 hover:text-zinc-100"
|
|
>
|
|
{label}
|
|
</Link>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</nav>
|
|
</header>
|
|
<main className="flex flex-1 flex-col">{children}</main>
|
|
</div>
|
|
);
|
|
}
|