import { useState } from 'react'; import { Form, Input, Button, Tabs, App as AntApp, Alert } from 'antd'; import { useNavigate, useSearchParams } from 'react-router-dom'; import { useAuth } from '../store/auth'; export default function LoginPage() { const [tab, setTab] = useState<'login' | 'register'>('login'); const navigate = useNavigate(); const [params] = useSearchParams(); const next = params.get('next') || '/'; const { login, register } = useAuth(); const { message } = AntApp.useApp(); const [loading, setLoading] = useState(false); const onLogin = async (values: any) => { setLoading(true); try { await login(values.email, values.password); message.success('登录成功'); navigate(next, { replace: true }); } catch (e: any) { message.error(e?.response?.data?.error ?? e?.message ?? '登录失败'); } finally { setLoading(false); } }; const onRegister = async (values: any) => { setLoading(true); try { await register({ email: values.email, password: values.password, name: values.name, inviteCode: values.inviteCode || undefined }); message.success('注册成功,已自动登录'); navigate(next, { replace: true }); } catch (e: any) { message.error(e?.response?.data?.error ?? e?.message ?? '注册失败'); } finally { setLoading(false); } }; return (
可视化编排提示词、知识库与工具,让每一位团队成员都能调用最契合的 AI 能力。