"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)} />
)}
);
}