import React, { useRef, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { Form, MessagePlugin, Input, Checkbox, Button, FormInstanceFunctions, SubmitContext } from 'tdesign-react'; import { LockOnIcon, MailIcon, BrowseOffIcon, BrowseIcon, UserIcon } from 'tdesign-icons-react'; import classnames from 'classnames'; import { useAppDispatch } from 'modules/store'; import { register } from 'modules/user'; import { connectWS } from 'utils/ws'; import Style from './index.module.less'; const { FormItem } = Form; export default function Register() { const [showPsw, toggleShowPsw] = useState(false); const formRef = useRef(); const navigate = useNavigate(); const dispatch = useAppDispatch(); const onSubmit = async (e: SubmitContext) => { if (e.validateResult === true) { const formValue = (formRef.current?.getFieldsValue?.(true) || {}) as { email: string; password: string; nickname: string; checked: boolean; }; if (!formValue.checked) { MessagePlugin.error('请同意服务协议与隐私声明'); return; } try { const nickname = formValue.nickname || formValue.email.split('@')[0]; await dispatch(register({ email: formValue.email, password: formValue.password, nickname })).unwrap(); connectWS(); MessagePlugin.success('注册成功,已自动登录'); navigate('/dashboard/base'); } catch (err: any) { MessagePlugin.error(err?.response?.data?.message || '注册失败,请稍后重试'); } } }; return (
} /> } /> } suffixIcon={ showPsw ? ( toggleShowPsw((current) => !current)} /> ) : ( toggleShowPsw((current) => !current)} /> ) } /> 我已阅读并同意 EveryPublish 服务协议 和 隐私声明
); }