"use client"; import React, { useEffect, useState } from "react"; import Link from "next/link"; import { useSession, signOut } from "next-auth/react"; import clsx from "clsx"; import { Search, ShoppingCart, ChevronDown, LogOut, User } from "lucide-react"; import { Button } from "@/components/ui/button"; import { ThemeToggle } from "@/components/theme-toggle"; import { getCookieSession, logoutViaCookie, clearTokens, AUTH_CHANGE_EVENT, notifyAuthChange, } from "@/lib/auth-api"; const navItems = [ { label: "Home", href: "/", hasDropdown: true }, { label: "About Us", href: "/about", hasDropdown: false }, { label: "Pages", href: "/pages", hasDropdown: true }, { label: "Blog", href: "/blog", hasDropdown: true, active: true }, { label: "Contact", href: "/contact", hasDropdown: false }, ]; function TechwixLogo() { return ( {/* Single gradient shape - diamond/arrowhead */} Techwix ); } export default function Header() { const [scrolled, setScrolled] = useState(false); const { data: session, status } = useSession(); const [cookieLoggedIn, setCookieLoggedIn] = useState(false); const isLoggedIn = Boolean(session?.user) || cookieLoggedIn; useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 8); window.addEventListener("scroll", onScroll, { passive: true }); onScroll(); return () => window.removeEventListener("scroll", onScroll); }, []); const refreshCookieSession = () => { getCookieSession().then((s) => setCookieLoggedIn(s.loggedIn)); }; useEffect(() => { refreshCookieSession(); const handler = () => refreshCookieSession(); window.addEventListener(AUTH_CHANGE_EVENT, handler); return () => window.removeEventListener(AUTH_CHANGE_EVENT, handler); }, []); const handleLogout = async () => { clearTokens(); // eski localStorage token varsa temizle await logoutViaCookie(); signOut({ callbackUrl: "/" }); setCookieLoggedIn(false); notifyAuthChange(); }; return (
{status === "loading" ? null : isLoggedIn ? ( <> Profil ) : ( <> )}
); }