import { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import { login, register, isLoggedIn } from '../lib/api'; import AppShell from '../components/AppShell'; import { Icon } from '../components/icons'; import { useToast } from '../components/ToastProvider'; export default function Login() { const router = useRouter(); const { showToast } = useToast(); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); useEffect(() => { if (isLoggedIn()) { router.push('/'); } }, [router]); const handleSubmit = async (e) => { e.preventDefault(); setError(''); setLoading(true); try { await login(username, password); showToast('登录成功', { tone: 'success' }); router.push('/'); } catch (err) { setError(err.message); showToast(err.message, { tone: 'error' }); } finally { setLoading(false); } }; return (

欢迎回来

登录后继续记录每一笔收支

{error &&
{error}
}
setUsername(e.target.value)} placeholder="3-20个字符" required disabled={loading} />
setPassword(e.target.value)} placeholder="6-20个字符" required disabled={loading} />
); }