From 99d378ccad88342e390d69b3360b18919a76c3f2 Mon Sep 17 00:00:00 2001 From: MarkNerdi <105642810+MarkNerdi@users.noreply.github.com> Date: Mon, 20 Feb 2023 15:52:09 +0100 Subject: [PATCH] enhancement: improve apply filter button (#5912) --- packages/desktop/components/filter/Filter.svelte | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/desktop/components/filter/Filter.svelte b/packages/desktop/components/filter/Filter.svelte index eb88781331..67c058d10f 100644 --- a/packages/desktop/components/filter/Filter.svelte +++ b/packages/desktop/components/filter/Filter.svelte @@ -33,9 +33,18 @@ openFilterItemIndex = index } - $: isChanged = JSON.stringify($filterStore) !== JSON.stringify(filter) + $: isChanged = isFilterChanged($filterStore, filter) $: filterActive = modal?.isOpened() $: activeFilterCount = Object.keys($filterStore).filter((f) => $filterStore[f].active).length + + function isFilterChanged(originalFilter: Filter, filter: Filter): boolean { + const oldHasActiveFilters = Object.keys(originalFilter).some((key) => originalFilter[key].active) + const newHasActiveFilters = Object.keys(filter).some((key) => filter[key].active) + + const stayedDeactivated = !oldHasActiveFilters && !newHasActiveFilters + const isDifferent = JSON.stringify(originalFilter) !== JSON.stringify(filter) + return isDifferent && !stayedDeactivated + }