From f5355b4e559405af5516fdf1e50772eabc8d26c5 Mon Sep 17 00:00:00 2001 From: JzoNg Date: Wed, 16 Jul 2025 10:44:58 +0800 Subject: [PATCH 1/3] fix i18n --- web/i18n/en-US/common.ts | 4 ++-- web/i18n/ja-JP/common.ts | 6 +++--- web/i18n/zh-Hans/common.ts | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/web/i18n/en-US/common.ts b/web/i18n/en-US/common.ts index 1eb4aa2327..88f2abd8e8 100644 --- a/web/i18n/en-US/common.ts +++ b/web/i18n/en-US/common.ts @@ -240,13 +240,13 @@ const translation = { verifyNew: 'Verify your new email', authTip: 'Once your email is changed, Google or GitHub accounts linked to your old email will no longer be able to log in to this account.', content1: 'If you continue, we\'ll send a verification code to {{email}} for re-authentication.', - content2: 'Your current email is {{email}} . Verification code has been sent to this email address.', + content2: 'Your current email is {{email}}. Verification code has been sent to this email address.', content3: 'Enter a new email and we will send you a verification code.', content4: 'We just sent you a temporary verification code to {{email}}.', codeLabel: 'Verification code', codePlaceholder: 'Paste the 6-digit code', emailLabel: 'New email', - emailPlaceholder: 'Enter new email', + emailPlaceholder: 'Enter a new email', existingEmail: 'A user with this email already exists.', sendVerifyCode: 'Send verification code', continue: 'Continue', diff --git a/web/i18n/ja-JP/common.ts b/web/i18n/ja-JP/common.ts index 9ba9843e60..89cd426479 100644 --- a/web/i18n/ja-JP/common.ts +++ b/web/i18n/ja-JP/common.ts @@ -238,10 +238,10 @@ const translation = { title: 'メールアドレスを変更', verifyEmail: '現在のメールアドレスを確認してください', newEmail: '新しいメールアドレスを設定する', - verifyNew: '新しいメールアドレスを確認する', + verifyNew: '新しいメールアドレスを確認してください', authTip: 'メールアドレスが変更されると、旧メールアドレスにリンクされている Google または GitHub アカウントは、このアカウントにログインできなくなります。', - content1: '続行すると、再認証のために確認コードが {{email}> に送信されます。', - content2: '現在のメールアドレスは {{email}} です。確認コードはこのメールアドレスに送信されました。', + content1: '変更を続ける場合、{{email}} に認証用の確認コードをお送りします。', + content2: '現在のメールアドレスは {{email}} です。認証コードはこのメールアドレスに送信されました。', content3: '新しいメールアドレスを入力すると、確認コードが送信されます。', content4: '一時確認コードを {{email}} に送信しました。', codeLabel: 'コード', diff --git a/web/i18n/zh-Hans/common.ts b/web/i18n/zh-Hans/common.ts index 02d98e36d6..6c827bb3d6 100644 --- a/web/i18n/zh-Hans/common.ts +++ b/web/i18n/zh-Hans/common.ts @@ -242,11 +242,11 @@ const translation = { content1: '如果您继续,我们将向 {{email}} 发送验证码以进行重新验证。', content2: '你的当前邮箱是 {{email}} 。验证码已发送至该邮箱。', content3: '输入新的电子邮件,我们将向您发送验证码。', - content4: '我们已将验证码发送至 {{email}} 。', + content4: '我们已将验证码发送至 {{email}}。', codeLabel: '验证码', codePlaceholder: '输入 6 位数字验证码', emailLabel: '新邮箱', - emailPlaceholder: '输入新邮箱', + emailPlaceholder: '输入新的邮箱,我们将向您发送验证码。', existingEmail: '该邮箱已存在', sendVerifyCode: '发送验证码', continue: '继续', From 17faf68fb808d7e99b65c67ae7730826dd4488dc Mon Sep 17 00:00:00 2001 From: JzoNg Date: Wed, 16 Jul 2025 10:47:29 +0800 Subject: [PATCH 2/3] fix i18n --- web/i18n/zh-Hans/common.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/i18n/zh-Hans/common.ts b/web/i18n/zh-Hans/common.ts index 6c827bb3d6..bf0d2c4956 100644 --- a/web/i18n/zh-Hans/common.ts +++ b/web/i18n/zh-Hans/common.ts @@ -241,12 +241,12 @@ const translation = { authTip: '一旦您的电子邮件地址更改,链接到您旧电子邮件地址的 Google 或 GitHub 帐户将无法再登录该帐户。', content1: '如果您继续,我们将向 {{email}} 发送验证码以进行重新验证。', content2: '你的当前邮箱是 {{email}} 。验证码已发送至该邮箱。', - content3: '输入新的电子邮件,我们将向您发送验证码。', - content4: '我们已将验证码发送至 {{email}}。', + content3: '输入新的邮箱,我们将向您发送验证码。', + content4: '我们已将验证码发送至 {{email}} 。', codeLabel: '验证码', codePlaceholder: '输入 6 位数字验证码', emailLabel: '新邮箱', - emailPlaceholder: '输入新的邮箱,我们将向您发送验证码。', + emailPlaceholder: '输入新邮箱', existingEmail: '该邮箱已存在', sendVerifyCode: '发送验证码', continue: '继续', From e80ec701ac018d7e6c2dd2ce700bc2d26a9e17fe Mon Sep 17 00:00:00 2001 From: JzoNg Date: Wed, 16 Jul 2025 11:37:02 +0800 Subject: [PATCH 3/3] fix email reset params --- .../account-page/email-change-modal.tsx | 31 +++++++++---------- web/service/common.ts | 2 +- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/web/app/account/account-page/email-change-modal.tsx b/web/app/account/account-page/email-change-modal.tsx index 8d26ca66f3..85c7db5945 100644 --- a/web/app/account/account-page/email-change-modal.tsx +++ b/web/app/account/account-page/email-change-modal.tsx @@ -39,6 +39,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { const [time, setTime] = useState(0) const [stepToken, setStepToken] = useState('') const [newEmailExited, setNewEmailExited] = useState(false) + const [isCheckingEmail, setIsCheckingEmail] = useState(false) const startCount = () => { setTime(60) @@ -72,7 +73,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { } } - const verifyEmailAddress = async (email: string, code: string, token: string, callback?: () => void) => { + const verifyEmailAddress = async (email: string, code: string, token: string, callback?: (data?: any) => void) => { try { const res = await verifyEmail({ email, @@ -81,7 +82,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { }) if (res.is_valid) { setStepToken(res.token) - callback?.() + callback?.(res.token) } else { notify({ @@ -117,28 +118,24 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { } const checkNewEmailExisted = async (email: string) => { + setIsCheckingEmail(true) try { await checkEmailExisted({ email, }) setNewEmailExited(false) } - catch (error) { - setNewEmailExited(false) - if ((error as any)?.code === 'email_already_in_use') { - setNewEmailExited(true) - } - else { - notify({ - type: 'error', - message: `Error checking email existence: ${error ? (error as any).message : ''}`, - }) - } + catch { + setNewEmailExited(true) + } + finally { + setIsCheckingEmail(false) } } const handleNewEmailValueChange = (mailAddress: string) => { setMail(mailAddress) + setNewEmailExited(false) if (isValidEmail(mailAddress)) checkNewEmailExisted(mailAddress) } @@ -172,11 +169,11 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { router.push('/signin') } - const updateEmail = async () => { + const updateEmail = async (lastToken: string) => { try { await resetEmail({ new_email: mail, - token: stepToken, + token: lastToken, }) handleLogout() } @@ -189,7 +186,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { } const submitNewEmail = async () => { - await verifyEmailAddress(mail, code, stepToken, () => updateEmail()) + await verifyEmailAddress(mail, code, stepToken, updateEmail) } return ( @@ -302,7 +299,7 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => {