mirror of
https://github.com/Chewbaccalakis/rfid-database.git
synced 2026-09-10 00:11:56 -07:00
Add Next.js app with SQLite/Drizzle storage for sites and LF/HF tag dumps, multi-user Auth.js (credentials + optional OIDC), personal API tokens in Settings, versioned /api/v1 for UI and future CLI use, MCT/Proxmark/JSON import-export, PWA offline shell, Vitest tests, and GitHub Actions CI.
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import { DM_Sans, IBM_Plex_Mono } from "next/font/google";
|
|
import type { Metadata, Viewport } from "next";
|
|
import { Providers } from "@/components/Providers";
|
|
import { AppHeader } from "@/components/AppHeader";
|
|
import { ServiceWorkerRegister } from "@/components/ServiceWorkerRegister";
|
|
import "./globals.css";
|
|
|
|
const dmSans = DM_Sans({
|
|
subsets: ["latin"],
|
|
variable: "--font-dm-sans",
|
|
});
|
|
|
|
const ibmMono = IBM_Plex_Mono({
|
|
subsets: ["latin"],
|
|
weight: ["400", "500"],
|
|
variable: "--font-ibm-mono",
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: "RFID Database",
|
|
description: "Store and look up LF/HF RFID tag dumps by site",
|
|
applicationName: "RFID DB",
|
|
appleWebApp: {
|
|
capable: true,
|
|
title: "RFID DB",
|
|
statusBarStyle: "black-translucent",
|
|
},
|
|
};
|
|
|
|
export const viewport: Viewport = {
|
|
themeColor: "#1a7f6e",
|
|
width: "device-width",
|
|
initialScale: 1,
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="en">
|
|
<body className={`${dmSans.variable} ${ibmMono.variable} antialiased`}>
|
|
<Providers>
|
|
<AppHeader />
|
|
<main className="container" style={{ padding: "1.25rem 0 3rem" }}>
|
|
{children}
|
|
</main>
|
|
<ServiceWorkerRegister />
|
|
</Providers>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|