"use client"; import Link from "next/link"; import { useTheme } from "next-themes"; import { useAppSelector, useAppDispatch } from "@/lib/hooks"; import { logout } from "@/lib/features/auth/authSlice"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Sun, Moon, LogOut, User, LayoutDashboard, Menu } from "lucide-react"; import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; import { useState, useEffect } from "react"; import { getAvatarUrl } from "@/lib/utils"; export function Header() { const { setTheme, theme } = useTheme(); const dispatch = useAppDispatch(); const { isAuthenticated, user } = useAppSelector((state) => state.auth); const [mounted, setMounted] = useState(false); // Prevent hydration mismatch useEffect(() => { setMounted(true); }, []); const handleLogout = () => { dispatch(logout()); }; if (!mounted) { return (
NextGoBlog
) } return (
{/* Desktop Interface */}
NextGoBlog
{/* Mobile Interface */} NextGoBlog {/* Right Side */}
{isAuthenticated ? (

{user?.username}

{user?.email}

{user?.roles?.some((r: any) => r.name === "admin") && ( Admin Panel )} Profil Çıkış Yap
) : (
)}
); }