From 6b58b4f545c9130b1a4450d2ab6d9d7769dd8515 Mon Sep 17 00:00:00 2001
From: Angelina Filippova <linakirsanova@gmail.com>
Date: Fri, 16 Oct 2020 00:58:34 +0300
Subject: [PATCH] Toggle Actor Type Filters

---
 src/views/users/components/UsersFilter.vue | 23 ++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/views/users/components/UsersFilter.vue b/src/views/users/components/UsersFilter.vue
index b952f07c..379577d7 100644
--- a/src/views/users/components/UsersFilter.vue
+++ b/src/views/users/components/UsersFilter.vue
@@ -66,16 +66,27 @@ export default {
         ? currentFilters.push(this.$data.value[Math.max(indexOfActive, indexOfDeactivated, indexOfPending, indexOfUnconfirmed)])
         : currentFilters
 
-      Math.max(indexOfPerson, indexOfService, indexOfApplication) > -1
-        ? currentFilters.push(this.$data.value[Math.max(indexOfPerson, indexOfService, indexOfApplication)])
-        : currentFilters
+      const actorTypeFilters = [indexOfPerson, indexOfService, indexOfApplication].reduce((acc, index) => {
+        if (index > -1) {
+          currentFilters.push(this.$data.value[index])
+          acc.push(this.$data.value[index])
+        }
+        return acc
+      }, [])
 
-      return currentFilters
+      return [
+        currentFilters,
+        currentFilters.filter(filter => !actorTypeFilters.includes(filter)),
+        actorTypeFilters
+      ]
     },
     toggleFilters() {
-      this.$data.value = this.removeOppositeFilters()
-      const currentFilters = this.$data.value.reduce((acc, filter) => ({ ...acc, [filter]: true }), {})
+      const [allFilters, filters, actorTypeFilters] = this.removeOppositeFilters()
+
+      this.$data.value = allFilters
+      const currentFilters = filters.reduce((acc, filter) => ({ ...acc, [filter]: true }), {})
       this.$store.dispatch('ToggleUsersFilter', currentFilters)
+      this.$store.dispatch('ToggleActorTypeFilter', actorTypeFilters)
     }
   }
 }
-- 
GitLab