From 3d7d026afe2ad34681d0a702172b6c2a036eccee Mon Sep 17 00:00:00 2001 From: Angelina Filippova Date: Wed, 27 Mar 2019 21:28:04 +0500 Subject: [PATCH] Add switching between opposite filters --- src/views/users/components/UsersFilter.vue | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/views/users/components/UsersFilter.vue b/src/views/users/components/UsersFilter.vue index 7da7a0dd..6576cd13 100644 --- a/src/views/users/components/UsersFilter.vue +++ b/src/views/users/components/UsersFilter.vue @@ -34,7 +34,25 @@ export default { } }, methods: { + removeOppositeFilters() { + const currentFilters = this.$data.value.slice() + const indexOfLocal = currentFilters.indexOf('local') + const indexOfExternal = currentFilters.indexOf('external') + const indexOfActive = currentFilters.indexOf('active') + const indexOfDeactivated = currentFilters.indexOf('deactivated') + if (currentFilters.length === 4) { + return [] + } else if (indexOfLocal > -1 && indexOfExternal > -1) { + const filterToRemove = indexOfLocal > indexOfExternal ? indexOfExternal : indexOfLocal + currentFilters.splice(filterToRemove, 1) + } else if (indexOfActive > -1 && indexOfDeactivated > -1) { + const filterToRemove = indexOfActive > indexOfDeactivated ? indexOfDeactivated : indexOfActive + currentFilters.splice(filterToRemove, 1) + } + return currentFilters + }, toggleFilters() { + this.$data.value = this.removeOppositeFilters() const currentFilters = this.$data.value.reduce((acc, filter) => ({ ...acc, [filter]: true }), {}) this.$store.dispatch('ToggleUsersFilter', currentFilters) }