48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import type { Metadata } from "next";
 | |
| import { Inter } from "next/font/google";
 | |
| 
 | |
| import { Toaster } from "@/components/ui/toaster";
 | |
| import "./tailwind.css";
 | |
| import Link from "next/link";
 | |
| import { ComponentProps } from "react";
 | |
| import { Send } from "lucide-react";
 | |
| import Navlinks from "./ui/navLinks";
 | |
| 
 | |
| const inter = Inter({ subsets: ["latin"] });
 | |
| 
 | |
| export const metadata: Metadata = {
 | |
|   title: "Subman",
 | |
|   description: "A self-hosted literary submission tracker."
 | |
| };
 | |
| 
 | |
| function NavLink(props: ComponentProps<"div"> & { href: string }) {
 | |
|   return (
 | |
|     <Link href={props.href}><h1 className="text-4xl font-black my-2">{props.children}</h1></Link>
 | |
|   )
 | |
| }
 | |
| 
 | |
| 
 | |
| export default function RootLayout({
 | |
|   children,
 | |
| }: Readonly<{
 | |
|   children: React.ReactNode;
 | |
| }>) {
 | |
|   return (
 | |
|     <html lang="en">
 | |
|       <body className={inter.className}>
 | |
|         <div id="layout-container" className="flex p-4">
 | |
|           <div id="sidebar" >
 | |
|             <header className="mb-6">
 | |
|               <h1 className="font-black text-6xl antialiased inline">SubMan</h1> <Send className="inline mb-6" size={"3rem"} />
 | |
|               <p className="font-bold text-xl antialiased">The self-hosted literary<br />  submission tracker.</p>
 | |
|             </header>
 | |
|             <Navlinks />
 | |
|           </div>
 | |
|           {children}
 | |
|         </div>
 | |
|         <Toaster />
 | |
|       </body>
 | |
|     </html >
 | |
|   );
 | |
| }
 |