- New modern audio wave 'A' logo (192x192 and 512x512 icons) - PWA service worker for offline support and installability - Wake Lock API for background audio on FiiO/Android devices - Visibility change handling to prevent audio pause on screen off - Updated manifest.json with music categories and proper PWA config - Media Session API lock screen controls (already present) - Renamed app to 'Audiophile Web Player'
64 lines
1.9 KiB
TypeScript
64 lines
1.9 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Outfit } from "next/font/google";
|
|
import "./globals.css";
|
|
import Sidebar from "@/components/Sidebar";
|
|
import PlayerBar from "@/components/PlayerBar";
|
|
import MobileNav from "@/components/MobileNav";
|
|
import RightSidebar from "@/components/RightSidebar";
|
|
import { PlayerProvider } from "@/context/PlayerContext";
|
|
import { LibraryProvider } from "@/context/LibraryContext";
|
|
import ServiceWorkerRegistration from "@/components/ServiceWorkerRegistration";
|
|
|
|
const outfit = Outfit({
|
|
subsets: ["latin"],
|
|
variable: "--font-outfit",
|
|
weight: ["300", "400", "500", "600", "700"],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Audiophile Web Player",
|
|
description: "High-Fidelity Local-First Music Player",
|
|
manifest: "/manifest.json",
|
|
referrer: "no-referrer",
|
|
appleWebApp: {
|
|
capable: true,
|
|
statusBarStyle: "black-translucent",
|
|
title: "Audiophile Web Player",
|
|
},
|
|
other: {
|
|
"mobile-web-app-capable": "yes",
|
|
},
|
|
icons: {
|
|
icon: "/icons/icon-192x192.png",
|
|
apple: "/icons/icon-512x512.png",
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="en">
|
|
<body
|
|
className={`${outfit.variable} antialiased bg-black h-screen flex flex-col overflow-hidden text-white font-sans`}
|
|
>
|
|
<ServiceWorkerRegistration />
|
|
<PlayerProvider>
|
|
<LibraryProvider>
|
|
<div className="flex-1 flex overflow-hidden p-2 gap-2 mb-[64px] md:mb-0">
|
|
<Sidebar />
|
|
<main className="flex-1 bg-[#121212] rounded-lg overflow-y-auto relative no-scrollbar">
|
|
{children}
|
|
</main>
|
|
<RightSidebar />
|
|
</div>
|
|
<PlayerBar />
|
|
<MobileNav />
|
|
</LibraryProvider>
|
|
</PlayerProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|