- 实现了完整的登录注册认证流程,包括密码验证和用户资料获取 - 集成了JWT令牌管理和自动刷新机制,支持设备ID生成和管理 - 添加了WebSocket连接配置和API基础URL环境变量设置 - 实现了API客户端的请求拦截器,包括令牌验证和错误处理逻辑 - 集成了MD5加密和认证令牌缓存机制,提升安全性 - 添加了多语言国际化支持,包括英语、中文、马来语和印尼语 - 实现了认证状态管理和本地存储持久化功能 - 添加了表单验证schema和错误处理机制,增强用户体验
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import { useController } from 'react-hook-form'
|
|
import { useRegisterForm } from '../hooks/use-register-form'
|
|
import { DesktopRegisterFormView } from './desktop-register-form-view'
|
|
|
|
interface DesktopRegisterFormProps {
|
|
onSuccess?: () => void
|
|
}
|
|
|
|
export function DesktopRegisterForm({ onSuccess }: DesktopRegisterFormProps) {
|
|
const { form, isSubmitting, onSubmit, submitError } = useRegisterForm({
|
|
onSuccess,
|
|
})
|
|
const usernameField = useController({
|
|
control: form.control,
|
|
name: 'username',
|
|
})
|
|
const passwordField = useController({
|
|
control: form.control,
|
|
name: 'password',
|
|
})
|
|
const confirmPasswordField = useController({
|
|
control: form.control,
|
|
name: 'confirmPassword',
|
|
})
|
|
const inviteCodeField = useController({
|
|
control: form.control,
|
|
name: 'inviteCode',
|
|
})
|
|
|
|
return (
|
|
<DesktopRegisterFormView
|
|
username={usernameField.field.value ?? ''}
|
|
password={passwordField.field.value ?? ''}
|
|
confirmPassword={confirmPasswordField.field.value ?? ''}
|
|
inviteCode={inviteCodeField.field.value ?? ''}
|
|
errors={{
|
|
confirmPassword: form.formState.errors.confirmPassword?.message,
|
|
inviteCode: form.formState.errors.inviteCode?.message,
|
|
password: form.formState.errors.password?.message,
|
|
username: form.formState.errors.username?.message,
|
|
}}
|
|
isSubmitting={isSubmitting}
|
|
onConfirmPasswordChange={confirmPasswordField.field.onChange}
|
|
onInviteCodeChange={inviteCodeField.field.onChange}
|
|
onPasswordChange={passwordField.field.onChange}
|
|
onSubmit={onSubmit}
|
|
onUsernameChange={usernameField.field.onChange}
|
|
submitError={submitError}
|
|
/>
|
|
)
|
|
}
|