2024-11-02 10:01:02 +00:00
|
|
|
import "@/app/globals.css";
|
2024-11-02 09:38:38 +00:00
|
|
|
import { cn } from "@/lib/utils";
|
|
|
|
import type { Metadata } from "next";
|
|
|
|
import { Inter } from "next/font/google";
|
2024-11-02 15:41:11 +00:00
|
|
|
import Header from "@/components/header";
|
2024-11-03 12:33:58 +00:00
|
|
|
import { Toaster } from "@/components/ui/toaster";
|
2024-11-02 15:41:11 +00:00
|
|
|
import { AppSidebar } from "@/components/app-sidebar";
|
|
|
|
import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar";
|
2024-11-02 09:38:38 +00:00
|
|
|
|
|
|
|
const inter = Inter({ subsets: ["latin"], variable: "--font-sans" });
|
|
|
|
|
|
|
|
export const metadata: Metadata = {
|
|
|
|
title: "Judge4c",
|
|
|
|
description:
|
|
|
|
"A full-stack, open-source online judge platform designed to elevate college programming education",
|
|
|
|
};
|
|
|
|
|
|
|
|
export default function RootLayout({
|
|
|
|
children,
|
|
|
|
}: Readonly<{
|
|
|
|
children: React.ReactNode;
|
|
|
|
}>) {
|
|
|
|
return (
|
|
|
|
<html lang="en">
|
|
|
|
<body className={cn("font-sans antialiased", inter.variable)}>
|
2024-11-02 15:41:11 +00:00
|
|
|
<SidebarProvider>
|
|
|
|
<AppSidebar />
|
|
|
|
<SidebarInset>
|
|
|
|
<Header />
|
2024-11-03 12:33:58 +00:00
|
|
|
<main>{children}</main>
|
|
|
|
<Toaster />
|
2024-11-02 15:41:11 +00:00
|
|
|
</SidebarInset>
|
|
|
|
</SidebarProvider>
|
2024-11-02 09:38:38 +00:00
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
);
|
|
|
|
}
|