import { useLogin, useRegister } from '@/hooks/login-hooks'; import { rsaPsw } from '@/utils'; import { Button, Checkbox, Form, Input } from 'antd'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Icon, useNavigate } from 'umi'; import RightPanel from './right-panel'; import { Domain } from '@/constants/common'; import styles from './index.less'; const Login = () => { const [title, setTitle] = useState('login'); const navigate = useNavigate(); const { login, loading: signLoading } = useLogin(); const { register, loading: registerLoading } = useRegister(); const { t } = useTranslation('translation', { keyPrefix: 'login' }); const loading = signLoading || registerLoading; const changeTitle = () => { setTitle((title) => (title === 'login' ? 'register' : 'login')); }; const [form] = Form.useForm(); useEffect(() => { form.validateFields(['nickname']); }, [form]); const onCheck = async () => { try { const params = await form.validateFields(); const rsaPassWord = rsaPsw(params.password) as string; if (title === 'login') { const code = await login({ email: params.email, password: rsaPassWord, }); if (code === 0) { navigate('/knowledge'); } } else { const code = await register({ nickname: params.nickname, email: params.email, password: rsaPassWord, }); if (code === 0) { setTitle('login'); } } } catch (errorInfo) { console.log('Failed:', errorInfo); } }; const formItemLayout = { labelCol: { span: 6 }, // wrapperCol: { span: 8 }, }; const toGoogle = () => { window.location.href = 'https://github.com/login/oauth/authorize?scope=user:email&client_id=302129228f0d96055bee'; }; return (
{title === 'login' ? t('login') : t('register')}
{title === 'login' ? t('loginDescription') : t('registerDescription')}
{title === 'register' && ( )} {title === 'login' && ( {t('rememberMe')} )}
{title === 'login' && (
{t('signInTip')}
)} {title === 'register' && (
{t('signUpTip')}
)}
{title === 'login' && ( <> {/* */} {location.host === Domain && ( )} )}
); }; export default Login;