import React, { useState, useRef, useEffect } from 'react'; import { Form, Input, Button, message } from 'antd'; import { Link, useLocation, useNavigate } from 'react-router-dom'; import DepartmentSelect from '../components/models/department/department-select'; import { useAuth } from '../providers/auth-provider'; import SineWave from '../components/presentation/animation/sine-wave'; const LoginPage: React.FC = () => { const [showLogin, setShowLogin] = useState(true); const [registerLoading, setRegisterLoading] = useState(false); const { login, isAuthenticated } = useAuth(); const loginFormRef = useRef(null); const registerFormRef = useRef(null); const location = useLocation(); const navigate = useNavigate() const onFinishLogin = async (values: any) => { try { const { username, password } = values; await login(username, password); message.success('登录成功!'); } catch (err) { message.warning('用户名或密码错误!'); console.error(err); } }; const onFinishRegister = async (values: any) => { setRegisterLoading(true); try { // await wp.RegisterUser().create({ // ...values, // custom_data: { org_unit: values.org_unit }, // }); message.success('注册成功!'); setShowLogin(true); loginFormRef.current.submit(); } catch (err) { console.error(err); } finally { setRegisterLoading(false); } }; useEffect(() => { if (isAuthenticated) { const params = new URLSearchParams(location.search); const redirectUrl = params.get('redirect_url') || '/'; navigate(redirectUrl, { replace: true }); } }, [isAuthenticated, location]); return (
{showLogin ? ( <> 返回首页
登录
) : ( <>
setShowLogin(true)} className="text-sm text-gray-400 hover:cursor-pointer hover:text-primary" > 返回登录
注册
({ validator(_, value) { if (!value || getFieldValue('password') === value) { return Promise.resolve(); } return Promise.reject(new Error('两次输入的密码不一致')); } }) ]}>
)}
{showLogin ? (
没有账号?
点击注册一个属于你自己的账号吧!
setShowLogin(false)} className="hover:translate-y-1 my-8 p-2 text-center rounded-xl border-white border hover:bg-white hover:text-primary hover:shadow-xl hover:cursor-pointer transition-all" > 注册
) : (
注册小贴士
请认真填写用户信息哦!
setShowLogin(true)} className="hover:translate-y-1 my-8 rounded-xl text-center border-white border p-2 hover:bg-white hover:text-primary hover:shadow-xl hover:cursor-pointer transition-all" > 返回登录
)}
); }; export default LoginPage;