46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { TooltipProvider } from "@/components/ui/tooltip";
|
|
import { Inter } from "next/font/google";
|
|
import "./globals.css";
|
|
import { cn } from "@/lib/utils";
|
|
import Sidebar from "@/components/sidebar";
|
|
import { Toaster } from "@/components/ui/sonner";
|
|
import QueryProvider from "@/components/query-provider";
|
|
|
|
const inter = Inter({ subsets: ["latin"], variable: "--font-sans" });
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Aperture",
|
|
description: "A homelab managment and blogging platform",
|
|
};
|
|
|
|
async function Providers({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<QueryProvider>
|
|
<TooltipProvider>
|
|
<Toaster />
|
|
{children}
|
|
</TooltipProvider>
|
|
</QueryProvider>
|
|
);
|
|
}
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html
|
|
lang="en"
|
|
className={cn("h-full", "antialiased", "font-sans", inter.variable)}
|
|
>
|
|
<body className="min-h-full flex flex-col">
|
|
<Providers>
|
|
<Sidebar>{children}</Sidebar>
|
|
</Providers>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|