/
afanasevn
/
PdfEncoder
Обзор
Документация
Войти
/
afanasevn
/
PdfEncoder
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
client/src/components/layout/AppShell.tsx
51 строка
2 KB
IBS\NAfanasev
Parse results functional update
07 июл 2026, 00:06
07 июл 2026, 00:06
8e97443
Код
Авторство
О чём код?
import { NavLink, Outlet } from "react-router-dom"; import { Badge } from "@/components/ui/badge"; import { cn } from "@/lib/utils"; const navItems = [ { to: "/", label: "История" }, { to: "/upload", label: "Загрузка" }, ]; export function AppShell() { return ( <div className="min-h-screen bg-[var(--color-muted)]/40"> <header className="border-b border-[var(--color-border)] bg-[var(--color-background)]"> <div className="mx-auto flex h-14 max-w-6xl items-center justify-between px-4"> <div className="flex items-center gap-3"> <span className="text-lg font-semibold">PdfEncoder</span> <Badge variant="secondary">DEV</Badge> </div> </div> </header> <div className="mx-auto flex min-h-[calc(100vh-3.5rem)] max-w-6xl gap-6 px-4 py-6"> <aside className="w-48 shrink-0"> <nav className="flex flex-col gap-1"> {navItems.map((item) => ( <NavLink key={item.to} to={item.to} end={item.to === "/"} className={({ isActive }) => cn( "rounded-md px-3 py-2 text-sm font-medium transition-colors", isActive ? "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]" : "text-[var(--color-muted-foreground)] hover:bg-[var(--color-muted)] hover:text-[var(--color-foreground)]", ) } > {item.label} </NavLink> ))} </nav> </aside> <main className="min-w-0 flex-1"> <Outlet /> </main> </div> </div> ); }