import { rsaPsw } from '@/utils'; import { Button, Checkbox, Form, Input } from 'antd'; import { FC, useEffect, useState } from 'react'; import { Dispatch, Icon, connect, useNavigate } from 'umi'; import styles from './index.less'; interface LoginProps { dispatch: Dispatch; } const View: FC = ({ dispatch }) => { let navigate = useNavigate(); const [title, setTitle] = useState('login'); const changeTitle = () => { setTitle((title) => (title === 'login' ? 'register' : 'login')); }; const [form] = Form.useForm(); const [checkNick, setCheckNick] = useState(false); useEffect(() => { form.validateFields(['nickname']); }, [checkNick, form]); const onCheck = async () => { try { const params = await form.validateFields(); var rsaPassWord = rsaPsw(params.password); if (title === 'login') { const ret = await dispatch({ type: 'loginModel/login', payload: { email: params.email, password: rsaPassWord, }, }); console.info(ret); navigate('/knowledge'); } else { dispatch({ type: 'loginModel/register', payload: { nickname: params.nickname, email: params.email, password: rsaPassWord, }, callback() { 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' ? 'Sign in' : 'Create an account'}
{title === 'login' ? 'We’re so excited to see you again!' : 'Glad to have you on board!'}
{title === 'register' && ( )} {title === 'login' && ( Remember me )}
{' '} {title === 'login' && (
Don’t have an account?
)} {title === 'register' && (
Already have an account?
)}
{title === 'login' && ( <> )}
); }; export default connect(({ loginModel, loading }) => ({ loginModel, loading }))( View, );