Files
MemShellParty/web/src/routes/__root.tsx
T
2024-12-08 16:59:18 +08:00

57 lines
2.8 KiB
TypeScript

import { ModeToggle } from "@/components/mode-toggle.tsx";
import { ThemeProvider } from "@/components/theme-provider.tsx";
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert.tsx";
import { Button } from "@/components/ui/button.tsx";
import { Outlet, createRootRoute } from "@tanstack/react-router";
import { TanStackRouterDevtools } from "@tanstack/router-devtools";
import { ServerOffIcon } from "lucide-react";
export const Route = createRootRoute({
component: RootComponent,
});
function RootComponent() {
return (
<ThemeProvider defaultTheme="system" storageKey="vite-ui-theme">
<div className="min-h-screen">
<header className="border-b px-4 py-3">
<div className="flex items-center justify-between">
<div className="flex items-center">
<h2 className="text-lg font-semibold">MemShellParty - JavaWeb</h2>
</div>
<div className="flex gap-1 mr-4">
<Button
variant="ghost"
size="icon"
className="size-8"
onClick={() => window.open("https://github.com/ReaJason/MemShellParty")}
>
<svg
height="32"
aria-hidden="true"
viewBox="0 0 24 24"
version="1.1"
width="32"
data-view-component="true"
className="octicon octicon-mark-github v-align-middle"
fill="currentColor"
>
<path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z" />
</svg>
</Button>
<ModeToggle />
</div>
</div>
</header>
<Alert className="px-4 border-0 border-b">
<ServerOffIcon className="h-4 w-4" />
<AlertTitle>服务不可用!</AlertTitle>
<AlertDescription>未检测到可用后端服务,生成功能暂不可用.</AlertDescription>
</Alert>
<Outlet />
<TanStackRouterDevtools position="bottom-right" />
</div>
</ThemeProvider>
);
}