71 lines · 1.8 KB · TypeScript
RawDownload
// CRITICALimport type { Metadata, Viewport } from "next";import { Geist, Geist_Mono } from "next/font/google";import "./globals.css";import { AppSidebar } from "@/components/app-sidebar"; const geistSans = Geist({  variable: "--font-geist-sans",  subsets: ["latin"],}); const geistMono = Geist_Mono({  variable: "--font-geist-mono",  subsets: ["latin"],}); export const viewport: Viewport = {  width: "device-width",  initialScale: 1,  maximumScale: 1,  userScalable: false,  viewportFit: "cover",  themeColor: "#1a1917",}; export const metadata: Metadata = {  title: "vLLM Studio",  description: "Model management for vLLM and SGLang",  manifest: "/manifest.json",  appleWebApp: {    capable: true,    statusBarStyle: "black-translucent",    title: "vLLM Studio",  },  icons: {    icon: [      { url: "/icons/icon-192.png", sizes: "192x192", type: "image/png" },      { url: "/icons/icon-512.png", sizes: "512x512", type: "image/png" },    ],    apple: [{ url: "/icons/apple-touch-icon.png", sizes: "180x180", type: "image/png" }],  },}; export default function RootLayout({  children,}: Readonly<{  children: React.ReactNode;}>) {  return (    <html lang="en" className="dark">      <head>        <link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />        <meta name="mobile-web-app-capable" content="yes" />        <script          dangerouslySetInnerHTML={{            __html: `              if ('serviceWorker' in navigator) {                window.addEventListener('load', () => {                  navigator.serviceWorker.register('/sw.js').catch(() => {});                });              }            `,          }}        />      </head>      <body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>        <AppSidebar>{children}</AppSidebar>      </body>    </html>  );}