From c24a71d74e3d2d02404864d40b41403da32188e2 Mon Sep 17 00:00:00 2001 From: ngxson Date: Fri, 7 Aug 2020 23:16:27 +0200 Subject: [PATCH] fix hasMailboxesChanges --- src/popup/components/AliasMoreOptions.vue | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/popup/components/AliasMoreOptions.vue b/src/popup/components/AliasMoreOptions.vue index a4f3f43..4a467b3 100644 --- a/src/popup/components/AliasMoreOptions.vue +++ b/src/popup/components/AliasMoreOptions.vue @@ -184,12 +184,10 @@ export default { canSave() { return ( this.moreOptions.mailboxes.length > 0 && - ( - this.alias.note !== this.moreOptions.note || + (this.alias.note !== this.moreOptions.note || this.alias.name !== this.moreOptions.name || !!this.alias.disable_pgp !== this.moreOptions.disable_pgp || - this.hasMailboxesChanges - ) + this.hasMailboxesChanges) ); }, @@ -199,7 +197,7 @@ export default { note: this.moreOptions.note, name: this.moreOptions.name, disable_pgp: this.moreOptions.disable_pgp, - mailbox_ids: this.moreOptions.mailboxes.map(mb => mb.id), + mailbox_ids: this.moreOptions.mailboxes.map((mb) => mb.id), }; const res = await callAPI( API_ROUTE.EDIT_ALIAS, @@ -240,7 +238,17 @@ export default { } else { this.moreOptions.mailboxes.splice(i, 1); } - this.hasMailboxesChanges = true; + + // check if there are changes + const oldMailboxIds = this.alias.mailboxes + .map((mb) => mb.id) + .sort() + .join(","); + const newMailboxIds = this.moreOptions.mailboxes + .map((mb) => mb.id) + .sort() + .join(","); + this.hasMailboxesChanges = oldMailboxIds !== newMailboxIds; }, }, };