Optimize list updates, send accounts API calls only with changes
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful

This commit is contained in:
Alexander Tumin 2022-07-31 11:12:49 +03:00
parent 19ae21d7ab
commit febf0d0c77

View file

@ -57,12 +57,16 @@ const actions = {
commit('setList', { id, title }) commit('setList', { id, title })
}, },
setListAccounts ({ rootState, commit }, { id, accountIds }) { setListAccounts ({ rootState, commit }, { id, accountIds }) {
rootState.api.backendInteractor.addAccountsToList({ id, accountIds }) const saved = rootState.lists.allListsObject[id].accountIds
rootState.api.backendInteractor.removeAccountsFromList({ const added = accountIds.filter(id => !saved.includes(id))
id, const removed = saved.filter(id => !accountIds.includes(id))
accountIds: rootState.lists.allListsObject[id].accountIds.filter(id => !accountIds.includes(id))
})
commit('setListAccounts', { id, accountIds }) commit('setListAccounts', { id, accountIds })
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 }) { deleteList ({ rootState, commit }, { id }) {
rootState.api.backendInteractor.deleteList({ id }) rootState.api.backendInteractor.deleteList({ id })
@ -76,7 +80,7 @@ export const getters = {
return state.allListsObject[id].title return state.allListsObject[id].title
}, },
findListAccounts: state => id => { findListAccounts: state => id => {
return state.allListsObject[id].accountIds return [...state.allListsObject[id].accountIds]
} }
} }