From ba8c98a8dccb8b561747168b90ae769a105d37cf Mon Sep 17 00:00:00 2001 From: schererleander Date: Fri, 26 Dec 2025 16:07:58 +0100 Subject: refactor: implement server-side rendering for auth-dependent pages --- src/components/Navbar.tsx | 83 +++++----------------------------------------- src/components/UserNav.tsx | 82 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 74 deletions(-) create mode 100644 src/components/UserNav.tsx (limited to 'src/components') diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index f75e6ed..e8f4138 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -1,31 +1,14 @@ -"use client" - import Link from "next/link" -import { useSession, signOut } from "next-auth/react" +import { getServerSession } from "next-auth" +import { LogIn } from "lucide-react" + import { Button } from "@/components/ui/button" -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" -import { LogIn, Settings, LogOut } from "lucide-react" import { ThemeToggle } from "@/components/ThemeToggle" +import { UserNav } from "@/components/UserNav" +import { authOptions } from "@/lib/auth" -export default function Navbar() { - const { data: session, status } = useSession() - - const getInitials = (name: string) => { - return name - .split(' ') - .map(word => word[0]) - .join('') - .toUpperCase() - .slice(0, 2) - } +export default async function Navbar() { + const session = await getServerSession(authOptions) return (