Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorChristopher Ng <chrng8@gmail.com>2022-03-02 23:00:33 +0300
committerChristopher Ng <chrng8@gmail.com>2022-06-10 23:15:35 +0300
commit2948c5e1f1665307ebb6844a2eaa4c3fa195b478 (patch)
tree0f54641309d8db6f2729b3c12d57101f49060804 /apps
parent2ee948e8d1a836696c514657c78804d1942f0d7b (diff)
Use unique key to prevent email component reusefix/31164/delete-additional-email
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Diffstat (limited to 'apps')
-rw-r--r--apps/settings/src/components/PersonalInfo/EmailSection/Email.vue1
-rw-r--r--apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue11
2 files changed, 8 insertions, 4 deletions
diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
index ef03ae0677d..deb5da3a798 100644
--- a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
+++ b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
@@ -51,7 +51,6 @@
<Actions class="email__actions"
:aria-label="t('settings', 'Email options')"
- :disabled="deleteDisabled"
:force-menu="true">
<ActionButton :aria-label="deleteEmailLabel"
:close-after-click="true"
diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue b/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue
index 07ec35861a9..1c548bf8355 100644
--- a/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue
+++ b/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue
@@ -46,8 +46,9 @@
<template v-if="additionalEmails.length">
<em class="additional-emails-label">{{ t('settings', 'Additional emails') }}</em>
+ <!-- TODO use unique key for additional email when uniqueness can be guaranteed, see https://github.com/nextcloud/server/issues/26866 -->
<Email v-for="(additionalEmail, index) in additionalEmails"
- :key="index"
+ :key="additionalEmail.key"
:index="index"
:scope.sync="additionalEmail.scope"
:email.sync="additionalEmail.value"
@@ -85,7 +86,7 @@ export default {
data() {
return {
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,
- additionalEmails,
+ additionalEmails: additionalEmails.map(properties => ({ ...properties, key: this.generateUniqueKey() })),
displayNameChangeSupported,
primaryEmail,
savePrimaryEmailScope,
@@ -119,7 +120,7 @@ export default {
methods: {
onAddAdditionalEmail() {
if (this.isValidSection) {
- this.additionalEmails.push({ value: '', scope: DEFAULT_ADDITIONAL_EMAIL_SCOPE })
+ this.additionalEmails.push({ value: '', scope: DEFAULT_ADDITIONAL_EMAIL_SCOPE, key: this.generateUniqueKey() })
}
},
@@ -184,6 +185,10 @@ export default {
this.logger.error(errorMessage, error)
}
},
+
+ generateUniqueKey() {
+ return Math.random().toString(36).substring(2)
+ },
},
}
</script>