diff --git a/src/views/setting/useSettingsForm.ts b/src/views/setting/useSettingsForm.ts
index 8ebe9ae..bce3665 100644
--- a/src/views/setting/useSettingsForm.ts
+++ b/src/views/setting/useSettingsForm.ts
@@ -123,9 +123,12 @@ export function useSettingsForm({ t, locale }: UseSettingsFormOptions) {
() => hasNewEmailChange.value && verifiedEmail.value === normalizedNewEmail.value
)
const hasNewPasswordChange = computed(() => securityDraft.value.newPassword.length > 0)
- const needsEmailVerification = computed(
- () => (hasNewEmailChange.value || hasNewPasswordChange.value) && !isEmailVerified.value
- )
+ const needsEmailVerification = computed(() => {
+ if (!hasNewEmailChange.value && !hasNewPasswordChange.value) return false
+ if (hasNewEmailChange.value && !isEmailVerified.value) return true
+ if (hasNewPasswordChange.value && !verificationCode.value) return true
+ return false
+ })
const displayLanguageLabel = computed(() =>
displayData.value.language ? t(`Settings.languages.${displayData.value.language}`) : ''
)