From 3ba16f7015ca5510bd8f3ad35d953f0bd0c795d0 Mon Sep 17 00:00:00 2001 From: Vladislav Fitc Date: Tue, 27 Sep 2022 14:02:30 +0200 Subject: [PATCH] fix(hierarchical): Hierarchical facets clearing (#252) * fix issues with hierarchical facets clearing --- Sources/InstantSearchCore/FilterState/GroupStorage.swift | 7 +++++-- .../Hierarchical/HierarchicalInteractor+FilterState.swift | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Sources/InstantSearchCore/FilterState/GroupStorage.swift b/Sources/InstantSearchCore/FilterState/GroupStorage.swift index 33ab5996..be42ef92 100644 --- a/Sources/InstantSearchCore/FilterState/GroupStorage.swift +++ b/Sources/InstantSearchCore/FilterState/GroupStorage.swift @@ -147,7 +147,10 @@ extension GroupsStorage: FiltersWritable { for groupID in groupIDs { switch groupID { case .hierarchical: - filterGroups[groupID] = filterGroups[groupID]?.withFilters([]) + if var cleanHierarchicalGroup = filterGroups[groupID]?.withFilters([]) as? FilterGroup.Hierarchical { + cleanHierarchicalGroup.hierarchicalFilters.removeAll() + filterGroups[groupID] = cleanHierarchicalGroup + } default: filterGroups.removeValue(forKey: groupID) } @@ -182,7 +185,7 @@ extension GroupsStorage: FiltersWritable { } mutating func removeAll() { - filterGroups.removeAll() + removeAll(fromGroupWithIDs: Array(getGroupIDs())) } } diff --git a/Sources/InstantSearchCore/Hierarchical/HierarchicalInteractor+FilterState.swift b/Sources/InstantSearchCore/Hierarchical/HierarchicalInteractor+FilterState.swift index 96e22c2a..7d1dc90e 100644 --- a/Sources/InstantSearchCore/Hierarchical/HierarchicalInteractor+FilterState.swift +++ b/Sources/InstantSearchCore/Hierarchical/HierarchicalInteractor+FilterState.swift @@ -39,8 +39,10 @@ public extension HierarchicalInteractor { } - filterState.onChange.subscribePast(with: interactor) { _, _ in - // TODO + filterState.onChange.subscribePast(with: interactor) { interactor, filterState in + if filterState[hierarchical: groupName].isEmpty { + interactor.selections = [] + } } }