diff --git a/apps/admin/app/(auth)/email/register-form.tsx b/apps/admin/app/(auth)/email/register-form.tsx index fba20ce..8ab1088 100644 --- a/apps/admin/app/(auth)/email/register-form.tsx +++ b/apps/admin/app/(auth)/email/register-form.tsx @@ -150,6 +150,7 @@ export default function RegisterForm({ /> ; // 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 [targetDate, setTargetDate] = useState(); @@ -27,21 +29,26 @@ 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(); + console.log(11111, latestValues); + if (latestValues.email && latestValues.type) { await sendEmailCode({ - email: params.email, - type: params.type, + email: latestValues.email, + type: latestValues.type, }); setTargetDate(Date.now() + 60000); } }; 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, }); setTargetDate(Date.now() + 60000); } @@ -49,9 +56,9 @@ export default function SendCode({ type, params }: SendCodeProps) { const handleSendCode = async () => { if (type === 'email') { - getEmailCode(); + await getEmailCode(); } else { - getPhoneCode(); + await getPhoneCode(); } }; const disabled = diff --git a/apps/user/app/(main)/(content)/(user)/document/tutorial-button.tsx b/apps/user/app/(main)/(content)/(user)/document/tutorial-button.tsx index 6e6ceb5..9534086 100644 --- a/apps/user/app/(main)/(content)/(user)/document/tutorial-button.tsx +++ b/apps/user/app/(main)/(content)/(user)/document/tutorial-button.tsx @@ -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[] }) { setActive(item)} className='bg-background hover:bg-accent flex cursor-pointer items-center justify-between rounded-[40px] border p-1 sm:p-4' >
@@ -149,17 +149,34 @@ export function TutorialButton({ items }: { items: Item[] }) { )}
- - {t('read')} - +
+ {item.download ? ( + + 官方下载 + + ) : null} + setActive(item)} + className={cn( + buttonVariants({ + variant: 'primary', + }), + 'px-3 sm:min-w-[80px]', + )} + > + {t('read')} + +
))} diff --git a/apps/user/app/(main)/(content)/(user)/profile/third-party-accounts.tsx b/apps/user/app/(main)/(content)/(user)/profile/third-party-accounts.tsx index 8dd999e..3bf6279 100644 --- a/apps/user/app/(main)/(content)/(user)/profile/third-party-accounts.tsx +++ b/apps/user/app/(main)/(content)/(user)/profile/third-party-accounts.tsx @@ -133,6 +133,7 @@ function MobileBindDialog({ ; // 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 = diff --git a/apps/user/utils/tutorial.ts b/apps/user/utils/tutorial.ts index 0ca79e0..39548f5 100644 --- a/apps/user/utils/tutorial.ts +++ b/apps/user/utils/tutorial.ts @@ -1,7 +1,6 @@ -import { NEXT_PUBLIC_CDN_URL } from '@/config/constants'; import matter from 'gray-matter'; -const BASE_URL = `${NEXT_PUBLIC_CDN_URL}/gh/perfect-panel/ppanel-tutorial`; +const BASE_URL = `https://airoport.co/md`; // async function getVersion() { // // API rate limit: 60 requests per hour @@ -11,24 +10,23 @@ const BASE_URL = `${NEXT_PUBLIC_CDN_URL}/gh/perfect-panel/ppanel-tutorial`; // const json = await response.json(); // return json[0].version; // } - -async function getVersionPath() { - // return getVersion() - // .then((version) => `${BASE_URL}@${version}`) - // .catch((error) => { - // console.warn('Error fetching the version:', error); - // return `${BASE_URL}@latest`; - // }); - return `${BASE_URL}@latest`; -} +// +// async function getVersionPath() { +// // return getVersion() +// // .then((version) => `${BASE_URL}@${version}`) +// // .catch((error) => { +// // console.warn('Error fetching the version:', error); +// // return `${BASE_URL}@latest`; +// // }); +// return `${BASE_URL}@latest`; +// } export async function getTutorial(path: string): Promise<{ config?: Record; content: string; }> { - const versionPath = await getVersionPath(); try { - const url = `${versionPath}/${path}`; + const url = `${BASE_URL}/${path}`; const response = await fetch(url); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`);