diff --git a/src/views/setting/components/SecuritySection.vue b/src/views/setting/components/SecuritySection.vue index 6c73d08..c957f76 100644 --- a/src/views/setting/components/SecuritySection.vue +++ b/src/views/setting/components/SecuritySection.vue @@ -1,29 +1,42 @@ diff --git a/src/views/setting/index.vue b/src/views/setting/index.vue index a8a3edf..431dc9d 100644 --- a/src/views/setting/index.vue +++ b/src/views/setting/index.vue @@ -25,7 +25,11 @@ v-model:current-password="securityDraft.currentPassword" :email="displayData.email" :is-editing="isEditing" + :is-editing-email="isEditingEmail" + :is-editing-password="isEditingPassword" :is-email-verified="isEmailVerified" + @edit-email="handleEditEmail" + @edit-password="handleEditPassword" @reset-email="resetSecurityEmail" @reset-password="resetSecurityPassword" @verify-email="handleVerifyEmail" @@ -98,9 +102,13 @@ fullName, roleModel, needsEmailVerification, + isEditingEmail, + isEditingPassword, handleEdit, handleDiscard, handleSave, + handleEditEmail, + handleEditPassword, resetSecurityEmail, resetSecurityPassword, handleVerifyEmail, diff --git a/src/views/setting/useSettingsForm.ts b/src/views/setting/useSettingsForm.ts index 0b4a0bd..88fd4a7 100644 --- a/src/views/setting/useSettingsForm.ts +++ b/src/views/setting/useSettingsForm.ts @@ -88,6 +88,8 @@ export function useSettingsForm({ t, locale }: UseSettingsFormOptions) { const verificationTargetEmail = shallowRef('') const verifiedEmail = shallowRef('') const verificationCode = shallowRef('') + const isEditingEmail = shallowRef(false) + const isEditingPassword = shallowRef(false) const roleList = computed(() => roleValues.map((value) => ({ @@ -178,6 +180,8 @@ export function useSettingsForm({ t, locale }: UseSettingsFormOptions) { draftData.value = cloneSettingsData(sourceData.value) securityDraft.value = createEmptySecurityDraft() resetEmailVerificationState() + isEditingEmail.value = false + isEditingPassword.value = false } const handleEdit = () => { @@ -188,11 +192,21 @@ export function useSettingsForm({ t, locale }: UseSettingsFormOptions) { const resetSecurityEmail = () => { securityDraft.value.newEmail = '' resetEmailVerificationState() + isEditingEmail.value = false } const resetSecurityPassword = () => { securityDraft.value.newPassword = '' securityDraft.value.currentPassword = '' + isEditingPassword.value = false + } + + const handleEditEmail = () => { + isEditingEmail.value = true + } + + const handleEditPassword = () => { + isEditingPassword.value = true } const handleDiscard = () => { @@ -385,11 +399,15 @@ export function useSettingsForm({ t, locale }: UseSettingsFormOptions) { fullName, roleModel, needsEmailVerification, + isEditingEmail, + isEditingPassword, handleEdit, handleDiscard, handleSave, resetSecurityEmail, resetSecurityPassword, + handleEditEmail, + handleEditPassword, handleVerifyEmail, handleSendVerifyCode, handleVerificationSubmit,