fix: 新手教程修改地址,注册表单修改form传值

This commit is contained in:
2025-09-01 05:16:23 -07:00
parent 36bbcbc4f9
commit 2862629516
12 changed files with 82 additions and 46 deletions
@@ -18,6 +18,7 @@ interface Item {
title: string;
updated_at?: string;
icon?: string;
download?: string;
}
export function TutorialButton({ items }: { items: Item[] }) {
const t = useTranslations('document');
@@ -120,7 +121,6 @@ export function TutorialButton({ items }: { items: Item[] }) {
<motion.div
layoutId={`card-${item.title}-${id}`}
key={`card-${item.title}-${id}`}
onClick={() => setActive(item)}
className='bg-background hover:bg-accent flex cursor-pointer items-center justify-between rounded-[40px] border p-1 sm:p-4'
>
<div className='flex flex-row items-center gap-4'>
@@ -149,17 +149,34 @@ export function TutorialButton({ items }: { items: Item[] }) {
)}
</div>
</div>
<motion.button
layoutId={`button-${item.title}-${id}`}
className={cn(
buttonVariants({
variant: 'primary',
}),
'sm:min-w-[100px]',
)}
>
{t('read')}
</motion.button>
<div>
{item.download ? (
<a
className={cn(
buttonVariants({
variant: 'default',
}),
'mr-2 bg-[#EAEAEA] px-3 text-[#225BA9] hover:text-white sm:min-w-[80px]',
)}
href={item.download}
target='_blank'
>
</a>
) : null}
<motion.button
layoutId={`button-${item.title}-${id}`}
onClick={() => setActive(item)}
className={cn(
buttonVariants({
variant: 'primary',
}),
'px-3 sm:min-w-[80px]',
)}
>
{t('read')}
</motion.button>
</div>
</motion.div>
))}
</ul>
@@ -133,6 +133,7 @@ function MobileBindDialog({
<Input placeholder='Enter code...' type='text' {...field} />
<SendCode
type='phone'
form={form}
params={{
telephone_area_code: form.getValues().area_code,
telephone: form.getValues().mobile,
@@ -173,6 +173,7 @@ export default function RegisterForm({
/>
<SendCode
type='email'
form={form}
params={{
...form.getValues(),
type: 1,
+1
View File
@@ -99,6 +99,7 @@ export default function ResetForm({
/>
<SendCode
type='email'
form={form}
params={{
...form.getValues(),
type: 2,
+1
View File
@@ -121,6 +121,7 @@ export default function LoginForm({
{mode === 'code' && (
<SendCode
type='phone'
form={form}
params={{
...form.getValues(),
type: 2,
@@ -173,6 +173,7 @@ export default function RegisterForm({
<SendCode
type='phone'
form={form}
params={{
...form.getValues(),
type: 1,
+1
View File
@@ -121,6 +121,7 @@ export default function ResetForm({
/>
<SendCode
type='phone'
form={form}
params={{
...form.getValues(),
type: 2,
+16 -10
View File
@@ -6,6 +6,7 @@ import { AiroButton } from '@workspace/airo-ui/components/AiroButton';
import { useCountDown } from 'ahooks';
import { useTranslations } from 'next-intl';
import { useEffect, useState } from 'react';
import { UseFormReturn } from 'react-hook-form';
interface SendCodeProps {
type: 'email' | 'phone';
@@ -15,8 +16,9 @@ interface SendCodeProps {
telephone_area_code?: string;
telephone?: string;
};
form: UseFormReturn<any>; // Add the new form prop
}
export default function SendCode({ type, params }: SendCodeProps) {
export default function SendCode({ type, params, form }: SendCodeProps) {
const t = useTranslations('auth');
const { common } = useGlobalStore();
const { verify_code_interval } = common.verify_code;
@@ -49,21 +51,25 @@ export default function SendCode({ type, params }: SendCodeProps) {
};
const getEmailCode = async () => {
if (params.email && params.type) {
// Use form.getValues() to get the latest form data
const latestValues = form.getValues();
if (latestValues.email && latestValues.type) {
await sendEmailCode({
email: params.email,
type: params.type,
email: latestValues.email,
type: latestValues.type,
});
setCodeTimer();
}
};
const getPhoneCode = async () => {
if (params.telephone && params.telephone_area_code && params.type) {
// Use form.getValues() to get the latest form data
const latestValues = form.getValues();
if (latestValues.telephone && latestValues.telephone_area_code && latestValues.type) {
await sendSmsCode({
telephone: params.telephone,
telephone_area_code: params.telephone_area_code,
type: params.type,
telephone: latestValues.telephone,
telephone_area_code: latestValues.telephone_area_code,
type: latestValues.type,
});
setCodeTimer();
}
@@ -71,9 +77,9 @@ export default function SendCode({ type, params }: SendCodeProps) {
const handleSendCode = async () => {
if (type === 'email') {
getEmailCode();
await getEmailCode();
} else {
getPhoneCode();
await getPhoneCode();
}
};
const disabled =