动态生成购买套餐 & 取消初次进后台修改密码的弹窗 & 添加总折扣字段 & 发布v1.5.0版本
This commit is contained in:
@@ -34,20 +34,12 @@ export type LoginSchema = zod.infer<typeof smsSchema | typeof pwdSchema>
|
||||
export default function LoginCard() {
|
||||
const router = useRouter()
|
||||
const refreshProfile = useProfileStore(store => store.refreshProfile)
|
||||
const [mode, setMode] = useState<LoginMode>('phone_code')
|
||||
const [mode, setMode] = useState<LoginMode>('password')
|
||||
const [submitting, setSubmitting] = useState(false)
|
||||
|
||||
const updateLoginMode = (mode: LoginMode) => {
|
||||
sessionStorage.setItem('login_mode', mode)
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
const mode = sessionStorage.getItem('login_mode')
|
||||
if (mode) {
|
||||
setMode(mode as LoginMode)
|
||||
}
|
||||
}, [])
|
||||
|
||||
const form = useForm<LoginSchema>({
|
||||
resolver: zodResolver(mode === 'phone_code' ? smsSchema : pwdSchema),
|
||||
defaultValues: {
|
||||
@@ -55,7 +47,16 @@ export default function LoginCard() {
|
||||
password: '',
|
||||
remember: false,
|
||||
},
|
||||
mode: 'onChange',
|
||||
})
|
||||
|
||||
useEffect(() => {
|
||||
const savedMode = sessionStorage.getItem('login_mode') as LoginMode
|
||||
if (savedMode && savedMode === 'phone_code') {
|
||||
setMode(savedMode)
|
||||
}
|
||||
}, [])
|
||||
|
||||
const handler = form.handleSubmit(async (data) => {
|
||||
setSubmitting(true)
|
||||
try {
|
||||
@@ -93,13 +94,14 @@ export default function LoginCard() {
|
||||
<Tabs
|
||||
value={mode}
|
||||
onValueChange={(val) => {
|
||||
setMode(val as typeof mode)
|
||||
form.reset({username: form.getValues('username'), password: '', remember: false})
|
||||
setMode(val as LoginMode)
|
||||
form.reset({username: '', password: '', remember: false})
|
||||
form.clearErrors()
|
||||
}}
|
||||
className="mb-6">
|
||||
<TabsList className="w-full p-0 bg-white">
|
||||
<Tab value="password">密码登录</Tab>
|
||||
<Tab value="phone_code">验证码登录</Tab>
|
||||
<Tab value="phone_code">验证码登录/注册</Tab>
|
||||
</TabsList>
|
||||
</Tabs>
|
||||
<Form<LoginSchema> className="space-y-6" form={form} handler={handler}>
|
||||
@@ -124,6 +126,7 @@ export default function LoginCard() {
|
||||
className="h-10"
|
||||
placeholder="请输入验证码"
|
||||
autoComplete="one-time-code"
|
||||
disabled={submitting}
|
||||
/>
|
||||
<SendMsgByUsername/>
|
||||
</div>
|
||||
@@ -137,6 +140,7 @@ export default function LoginCard() {
|
||||
placeholder="至少6位密码,需包含字母和数字"
|
||||
autoComplete="current-password"
|
||||
minLength={6}
|
||||
disabled={submitting}
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
@@ -162,6 +166,7 @@ export default function LoginCard() {
|
||||
id={id}
|
||||
checked={field.value}
|
||||
onCheckedChange={field.onChange}
|
||||
disabled={submitting}
|
||||
/>
|
||||
<div className="space-y-1 leading-none">
|
||||
<Label>保持登录</Label>
|
||||
|
||||
Reference in New Issue
Block a user