From 061c420fd4e83b89fa0a3782e17d24268b118591 Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Fri, 14 Jan 2022 15:23:32 +0200 Subject: [PATCH 1/5] added filtersEnabled by group slug method --- src/lib/filtering/filter.service.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/lib/filtering/filter.service.ts b/src/lib/filtering/filter.service.ts index e7c3f3f..138dc15 100644 --- a/src/lib/filtering/filter.service.ts +++ b/src/lib/filtering/filter.service.ts @@ -99,6 +99,26 @@ export class FilterService { ); } + filtersEnabled(filterGroupSlug: string): boolean { + let enabled = false; + const group = this.getGroup(filterGroupSlug); + + group?.filters.forEach(filter => { + if (filter.checked) { + enabled = true; + return; + } + filter.children.forEach(f => { + if (f.checked) { + enabled = true; + return; + } + }); + }); + + return enabled; + } + reset(): void { this.filterGroups.forEach(group => { group.filters.forEach(filter => { From d90392f402d95129d6d328be707ca0e948ff37fc Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Sun, 16 Jan 2022 13:40:20 +0200 Subject: [PATCH 2/5] refactor filtersEnabled method --- src/lib/filtering/filter.service.ts | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/lib/filtering/filter.service.ts b/src/lib/filtering/filter.service.ts index 138dc15..d09a177 100644 --- a/src/lib/filtering/filter.service.ts +++ b/src/lib/filtering/filter.service.ts @@ -100,23 +100,13 @@ export class FilterService { } filtersEnabled(filterGroupSlug: string): boolean { - let enabled = false; const group = this.getGroup(filterGroupSlug); - group?.filters.forEach(filter => { - if (filter.checked) { - enabled = true; - return; - } - filter.children.forEach(f => { - if (f.checked) { - enabled = true; - return; - } - }); - }); + if (!group) { + return false; + } - return enabled; + return !!group.filters.find(filter => filter.checked || !!filter.children.find(c => c.checked)); } reset(): void { From 8931369d1466bb554e482841cca8988864034709 Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Mon, 17 Jan 2022 11:52:57 +0200 Subject: [PATCH 3/5] checkChildren in toggleFilter method --- src/lib/filtering/filter.service.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/filtering/filter.service.ts b/src/lib/filtering/filter.service.ts index d09a177..3536aeb 100644 --- a/src/lib/filtering/filter.service.ts +++ b/src/lib/filtering/filter.service.ts @@ -37,7 +37,7 @@ export class FilterService { this._refresh$.next(true); } - toggleFilter(filterGroupSlug: string, key: string): void { + toggleFilter(filterGroupSlug: string, key: string, checkChildren = false): void { const filters = this.filterGroups.find(group => group.slug === filterGroupSlug)?.filters; if (!filters) { return console.error(`Cannot find filter group "${filterGroupSlug}"`); @@ -53,6 +53,12 @@ export class FilterService { if (found) { found.checked = !found.checked; + + if (checkChildren && found.checked) { + if (found instanceof NestedFilter) { + found.children.forEach(c => c.checked); + } + } } this.refresh(); From 2a01789982bc9a5d89c32e9224fbbcfaa2f7e4f5 Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Mon, 17 Jan 2022 13:51:59 +0200 Subject: [PATCH 4/5] 'unknown' type for result in dialog service --- src/lib/services/dialog.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/services/dialog.service.ts b/src/lib/services/dialog.service.ts index a63ff35..66c143e 100644 --- a/src/lib/services/dialog.service.ts +++ b/src/lib/services/dialog.service.ts @@ -49,7 +49,7 @@ export abstract class DialogService { data, }); - const fn = async result => { + const fn = async (result: unknown) => { if (result && cb) { await cb(result); } From 6c79b02a50f268a6b663e8e46d88f3c0d333a608 Mon Sep 17 00:00:00 2001 From: Edi Cziszter Date: Thu, 27 Jan 2022 13:15:46 +0200 Subject: [PATCH 5/5] some instead of find && children checked = true --- src/lib/filtering/filter.service.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/lib/filtering/filter.service.ts b/src/lib/filtering/filter.service.ts index 3536aeb..e334d10 100644 --- a/src/lib/filtering/filter.service.ts +++ b/src/lib/filtering/filter.service.ts @@ -54,10 +54,8 @@ export class FilterService { if (found) { found.checked = !found.checked; - if (checkChildren && found.checked) { - if (found instanceof NestedFilter) { - found.children.forEach(c => c.checked); - } + if (checkChildren && found.checked && found instanceof NestedFilter) { + found.children.forEach(c => (c.checked = true)); } } @@ -112,7 +110,7 @@ export class FilterService { return false; } - return !!group.filters.find(filter => filter.checked || !!filter.children.find(c => c.checked)); + return group.filters.some(filter => filter.checked || filter.children.some(c => c.checked)); } reset(): void {