Files
36-character-flower/src/features/auth/components/desktop-login-form.tsx
JiaJun 5dd4e31db4 feat(auth): 集成认证授权功能并优化API客户端
- 实现了完整的登录注册认证流程,包括密码验证和用户资料获取
- 集成了JWT令牌管理和自动刷新机制,支持设备ID生成和管理
- 添加了WebSocket连接配置和API基础URL环境变量设置
- 实现了API客户端的请求拦截器,包括令牌验证和错误处理逻辑
- 集成了MD5加密和认证令牌缓存机制,提升安全性
- 添加了多语言国际化支持,包括英语、中文、马来语和印尼语
- 实现了认证状态管理和本地存储持久化功能
- 添加了表单验证schema和错误处理机制,增强用户体验
2026-05-16 09:03:55 +08:00

38 lines
1.0 KiB
TypeScript

import { useController } from 'react-hook-form'
import { useLoginForm } from '../hooks/use-login-form'
import { DesktopLoginFormView } from './desktop-login-form-view'
interface DesktopLoginFormProps {
onSuccess?: () => void
}
export function DesktopLoginForm({ onSuccess }: DesktopLoginFormProps) {
const { form, isSubmitting, onSubmit, submitError } = useLoginForm({
onSuccess,
})
const usernameField = useController({
control: form.control,
name: 'username',
})
const passwordField = useController({
control: form.control,
name: 'password',
})
return (
<DesktopLoginFormView
username={usernameField.field.value ?? ''}
password={passwordField.field.value ?? ''}
errors={{
password: form.formState.errors.password?.message,
username: form.formState.errors.username?.message,
}}
isSubmitting={isSubmitting}
onPasswordChange={passwordField.field.onChange}
onSubmit={onSubmit}
onUsernameChange={usernameField.field.onChange}
submitError={submitError}
/>
)
}