"use client"; import Image from "next/image"; import Link from "next/link"; import React, { useEffect, useState } from "react"; import { Dropdown } from "../ui/dropdown/Dropdown"; import { DropdownItem } from "../ui/dropdown/DropdownItem"; import { fullDataUser } from "@/interface/admin"; import { UserMetaCardProps } from "@/interface/user"; import { apiGetCurrentUser, apiLogout } from "@/service/auth"; import { useRouter } from "next/navigation"; export default function UserDropdown() { const router = useRouter(); const [isOpen, setIsOpen] = useState(false); const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); function toggleDropdown(e: React.MouseEvent) { e.stopPropagation(); setIsOpen((prev) => !prev); } function closeDropdown() { setIsOpen(false); } useEffect(() => { const fetchUser = async () => { try { const userData = await apiGetCurrentUser(); // console.log("User data in dropdown:", userData); setUser(userData); } catch (err) { console.error("Lỗi:", err); } finally { setLoading(false); } }; fetchUser(); }, []); const handleLogout = async (e: React.MouseEvent) => { e.preventDefault(); try { await apiLogout(); } catch (error) { console.error("Logout failed", error); } finally { localStorage.clear(); sessionStorage.clear(); document.cookie.split(";").forEach((c) => { document.cookie = c .replace(/^ +/, "") .replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); }); window.location.href = "/signin"; } }; return (
{user?.data?.profile?.display_name || "User"} {user?.data?.email || "email"}
  • Edit profile
  • {/*
  • Account settings
  • */}
  • Support
Sign out
); }