diff options
| author | schererleander <leander@schererleander.de> | 2025-12-26 18:08:21 +0100 |
|---|---|---|
| committer | schererleander <leander@schererleander.de> | 2025-12-26 18:08:21 +0100 |
| commit | d4052a1f73eb9fa293ac3ac2ab2bad0729474115 (patch) | |
| tree | 8da67ff0b913805834e8c765b505d6fc6ac3290e /src | |
| parent | 67527c2f52e76725ad78719d4b0307e702bd0da1 (diff) | |
refactor(layout): move navbar and footer to root layout and switch toast library
Diffstat (limited to 'src')
| -rw-r--r-- | src/app/layout.tsx | 14 | ||||
| -rw-r--r-- | src/app/page.tsx | 72 | ||||
| -rw-r--r-- | src/components/ui/toast.tsx | 31 |
3 files changed, 42 insertions, 75 deletions
diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 35e95b1..3c5cde0 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,8 +1,10 @@ import type { Metadata } from "next"; import "./globals.css"; +import { Toaster } from "sonner"; import AuthSessionProvider from "@/components/SessionProvider"; -import { Toaster } from "@/components/ui/toast"; import { ThemeProvider } from "@/components/ThemeProvider"; +import Navbar from "@/components/Navbar"; +import Footer from "@/components/Footer"; export const metadata: Metadata = { title: "Boilerplate", @@ -16,16 +18,20 @@ export default function RootLayout({ }>) { return ( <html lang="en" suppressHydrationWarning> - <body> + <body className="min-h-screen flex flex-col"> <ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange > - <AuthSessionProvider> - {children} + <AuthSessionProvider> <Toaster /> + <Navbar /> + <main className="flex-1"> + {children} + </main> + <Footer /> </AuthSessionProvider> </ThemeProvider> </body> diff --git a/src/app/page.tsx b/src/app/page.tsx index 38fc4bb..ade6baa 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,51 +1,43 @@ import Link from "next/link" import { Button } from "@/components/ui/button" -import Navbar from "@/components/Navbar" -import Footer from "@/components/Footer" import { LogIn, ArrowRight } from "lucide-react" export default function Home() { return ( - <div className="min-h-screen flex flex-col"> - <Navbar /> - - <main className="flex-1 flex items-center justify-center"> - <div className="container mx-auto px-4 py-20 text-center"> - <div className="max-w-3xl mx-auto space-y-8"> - <div className="space-y-4"> - <h1 className="text-4xl md:text-6xl font-bold tracking-tight"> - Build Something - <span className="text-primary"> Amazing</span> - </h1> - <p className="text-xl text-muted-foreground max-w-2xl mx-auto leading-relaxed"> - A modern Next.js application with beautiful UI components, - secure authentication, and everything you need to build your next project. - </p> - </div> - - <div className="flex flex-col sm:flex-row gap-4 justify-center items-center"> - <Button asChild size="lg" className="text-lg px-8 py-6"> - <Link href="/login"> - <LogIn className="mr-2 h-5 w-5" /> - Get Started - </Link> - </Button> - <Button variant="outline" size="lg" className="text-lg px-8 py-6"> - Learn More - <ArrowRight className="ml-2 h-5 w-5" /> - </Button> - </div> - - <div className="pt-8"> - <p className="text-sm text-muted-foreground"> - Built with Next.js, Tailwind CSS, Shadcn/UI, and MongoDB - </p> - </div> + <div className="flex-1 flex items-center justify-center"> + <div className="container mx-auto px-4 py-20 text-center"> + <div className="max-w-3xl mx-auto space-y-8"> + <div className="space-y-4"> + <h1 className="text-4xl md:text-6xl font-bold tracking-tight"> + Build Something + <span className="text-primary"> Amazing</span> + </h1> + <p className="text-xl text-muted-foreground max-w-2xl mx-auto leading-relaxed"> + A modern Next.js application with beautiful UI components, + secure authentication, and everything you need to build your next project. + </p> + </div> + + <div className="flex flex-col sm:flex-row gap-4 justify-center items-center"> + <Button asChild size="lg" className="text-lg px-8 py-6"> + <Link href="/login"> + <LogIn className="mr-2 h-5 w-5" /> + Get Started + </Link> + </Button> + <Button variant="outline" size="lg" className="text-lg px-8 py-6"> + Learn More + <ArrowRight className="ml-2 h-5 w-5" /> + </Button> + </div> + + <div className="pt-8"> + <p className="text-sm text-muted-foreground"> + Built with Next.js, Tailwind CSS, Shadcn/UI, and MongoDB + </p> </div> </div> - </main> - - <Footer /> + </div> </div> ) } diff --git a/src/components/ui/toast.tsx b/src/components/ui/toast.tsx deleted file mode 100644 index 0991276..0000000 --- a/src/components/ui/toast.tsx +++ /dev/null @@ -1,31 +0,0 @@ -"use client" - -import { Toaster as Sonner } from "sonner" -import { useTheme } from "next-themes" - -type ToasterProps = React.ComponentProps<typeof Sonner> - -const Toaster = ({ ...props }: ToasterProps) => { - const { theme = "system" } = useTheme() - - return ( - <Sonner - theme={theme as ToasterProps["theme"]} - className="toaster group" - toastOptions={{ - classNames: { - toast: - "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg", - description: "group-[.toast]:text-muted-foreground", - actionButton: - "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground", - cancelButton: - "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground", - }, - }} - {...props} - /> - ) -} - -export { Toaster }
\ No newline at end of file |
