"use client" import { Button, Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Avatar, Spinner } from "@heroui/react" import { User, Logout, Login, AddUser } from "@icon-park/react" import { useAuthStore } from "@/store/auth" import { openLoginPage, openSignupPage } from "@/utils/auth" import { useDisclosure } from "@heroui/react" import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from "@heroui/react" export function AuthButton() { const { state, signOut } = useAuthStore() const { isOpen, onOpen, onOpenChange } = useDisclosure() const handleLogin = async () => { await openLoginPage() } const handleSignup = async () => { await openSignupPage() } const handleSignOut = async () => { await signOut() onOpenChange() } if (state.isLoading) { return ( ) } if (state.isAuthenticated && state.user) { return ( <> } textValue="用户信息" >
{state.user.email} {state.user.user_metadata?.name && ( {state.user.user_metadata.name} )}
} color="danger" onPress={onOpen} > 退出登录
{(onClose) => ( <> 退出登录

确认要退出登录吗?

)}
) } return ( } onPress={handleLogin} > 登录 } onPress={handleSignup} > 注册 ) }