diff options
author | Christopher Ng <chrng8@gmail.com> | 2022-03-02 20:00:33 +0000 |
---|---|---|
committer | Christopher Ng <chrng8@gmail.com> | 2022-06-10 20:15:35 +0000 |
commit | 2948c5e1f1665307ebb6844a2eaa4c3fa195b478 (patch) | |
tree | 0f54641309d8db6f2729b3c12d57101f49060804 /apps/settings/src | |
parent | 2ee948e8d1a836696c514657c78804d1942f0d7b (diff) | |
download | nextcloud-server-2948c5e1f1665307ebb6844a2eaa4c3fa195b478.tar.gz nextcloud-server-2948c5e1f1665307ebb6844a2eaa4c3fa195b478.zip |
Use unique key to prevent email component reuse
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Diffstat (limited to 'apps/settings/src')
-rw-r--r-- | apps/settings/src/components/PersonalInfo/EmailSection/Email.vue | 1 | ||||
-rw-r--r-- | apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue | 11 |
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> |