'use client'; import * as Dialog from '@radix-ui/react-dialog'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { useAuthStore } from '@/stores/auth-store'; import { useAuthUiStore } from '@/stores/auth-ui-store'; export function LoginModal() { const open = useAuthUiStore((s) => s.loginModalOpen); const close = useAuthUiStore((s) => s.closeLoginModal); const hint = useAuthUiStore((s) => s.loginHint); const login = useAuthStore((s) => s.login); const router = useRouter(); const [user, setUser] = useState(''); const [pass, setPass] = useState(''); const [tenant, setTenant] = useState(''); const [err, setErr] = useState(null); const [loading, setLoading] = useState(false); async function onSubmit(e: React.FormEvent) { e.preventDefault(); setErr(null); setLoading(true); try { await login(user, pass, tenant || undefined); close(); setUser(''); setPass(''); setTenant(''); router.refresh(); } catch (ex) { setErr(ex instanceof Error ? ex.message : String(ex)); } finally { setLoading(false); } } return ( { if (!next) { close(); } }} > e.preventDefault()} > 重新登录 {hint ? ( {hint} ) : ( 请输入用户名与密码以继续操作。 )}
{err ?

{err}

: null}
); }