"use client"; import { useState } from "react"; import { useSession, signOut } from "next-auth/react"; import { useRouter } from "next/navigation"; export default function UserMenu() { const { data: session } = useSession(); const router = useRouter(); const [isOpen, setIsOpen] = useState(false); const [isSigningOut, setIsSigningOut] = useState(false); const handleSignOut = async () => { setIsSigningOut(true); try { await signOut({ callbackUrl: "/login", redirect: true, }); } catch (error) { console.error("退出登录失败:", error); setIsSigningOut(false); } }; if (!session?.user) { return null; } return (
{/* 用户头像按钮 */} {/* 下拉菜单 */} {isOpen && (
{/* 用户信息 */}
{session.user.name || "用户"}
{session.user.email}
{/* 菜单项 */}
)} {/* 点击外部区域关闭菜单 */} {isOpen && (
setIsOpen(false)} /> )}
); }