Spaces:
Sleeping
Sleeping
| "use client"; | |
| import localFont from "next/font/local"; | |
| import "./globals.css"; | |
| import MusicPlayer from "@/components/MusicPlayer"; | |
| import { MusicPlayerProvider } from "@/context/MusicPlayerContext"; | |
| import { AppProgressBar as ProgressBar } from "next-nprogress-bar"; | |
| import Header from "@/components/Header"; | |
| import PlayQueue from "@/components/PlaylQueue"; | |
| const geistSans = localFont({ | |
| src: "./fonts/GeistVF.woff", | |
| variable: "--font-geist-sans", | |
| weight: "100 900", | |
| }); | |
| const geistMono = localFont({ | |
| src: "./fonts/GeistMonoVF.woff", | |
| variable: "--font-geist-mono", | |
| weight: "100 900", | |
| }); | |
| export default function RootLayout({ children }) { | |
| return ( | |
| <html lang="en"> | |
| <head> | |
| <link | |
| rel="apple-touch-icon" | |
| sizes="180x180" | |
| href="/apple-touch-icon.png" | |
| /> | |
| <link | |
| rel="icon" | |
| type="image/png" | |
| sizes="32x32" | |
| href="/favicon-32x32.png" | |
| /> | |
| <link | |
| rel="icon" | |
| type="image/png" | |
| sizes="16x16" | |
| href="/favicon-16x16.png" | |
| /> | |
| <link rel="manifest" href="/site.webmanifest" /> | |
| </head> | |
| <MusicPlayerProvider> | |
| <body | |
| className={`${geistSans.variable} ${geistMono.variable} antialiased max-h-screen overflow-hidden`} | |
| > | |
| <ProgressBar | |
| height="5px" | |
| color="var(--foreground-secondary)" | |
| options={{ showSpinner: false }} | |
| shallowRouting | |
| /> | |
| <Header /> | |
| <div className="app-container">{children} </div> | |
| <footer className="bottom-0 flex items-center w-full"> | |
| <PlayQueue isPlayQueueOpen={false} /> | |
| <MusicPlayer /> | |
| </footer> | |
| </body> | |
| </MusicPlayerProvider> | |
| </html> | |
| ); | |
| } | |