From f474763151fe7a08da2584c0ac3190369d76cf83 Mon Sep 17 00:00:00 2001 From: Yukkuri Date: Mon, 1 Aug 2022 10:11:39 +0000 Subject: [PATCH] Commit list accounts state after difference in removed accounts is determined (#82) Reviewed-on: https://akkoma.dev/AkkomaGang/pleroma-fe/pulls/82 Co-authored-by: Yukkuri Co-committed-by: Yukkuri --- src/modules/lists.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/modules/lists.js b/src/modules/lists.js index 0f751671..58700f41 100644 --- a/src/modules/lists.js +++ b/src/modules/lists.js @@ -57,12 +57,16 @@ const actions = { commit('setList', { id, title }) }, setListAccounts ({ rootState, commit }, { id, accountIds }) { + const saved = rootState.lists.allListsObject[id].accountIds + const added = accountIds.filter(id => !saved.includes(id)) + const removed = saved.filter(id => !accountIds.includes(id)) commit('setListAccounts', { id, accountIds }) - rootState.api.backendInteractor.addAccountsToList({ id, accountIds }) - rootState.api.backendInteractor.removeAccountsFromList({ - id, - accountIds: rootState.lists.allListsObject[id].accountIds.filter(id => !accountIds.includes(id)) - }) + if (added.length > 0) { + rootState.api.backendInteractor.addAccountsToList({ id, accountIds: added }) + } + if (removed.length > 0) { + rootState.api.backendInteractor.removeAccountsFromList({ id, accountIds: removed }) + } }, deleteList ({ rootState, commit }, { id }) { rootState.api.backendInteractor.deleteList({ id }) @@ -76,7 +80,7 @@ export const getters = { return state.allListsObject[id].title }, findListAccounts: state => id => { - return state.allListsObject[id].accountIds + return [...state.allListsObject[id].accountIds] } }