Skip to content

Commit 0f58334

Browse files
committed
fix(DynamicFacetList): update selections of facet order change (#393)
1 parent 10c5b72 commit 0f58334

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

instantsearch/src/commonMain/kotlin/com/algolia/instantsearch/filter/facet/dynamic/internal/DynamicFacetListConnectionFilterState.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.algolia.instantsearch.filter.facet.dynamic.internal
22

33
import com.algolia.instantsearch.core.Callback
44
import com.algolia.instantsearch.core.connection.AbstractConnection
5+
import com.algolia.instantsearch.filter.facet.dynamic.AttributedFacets
56
import com.algolia.instantsearch.filter.facet.dynamic.DynamicFacetListViewModel
67
import com.algolia.instantsearch.filter.facet.dynamic.SelectionsPerAttribute
78
import com.algolia.instantsearch.filter.state.FilterGroupDescriptor
@@ -30,6 +31,13 @@ internal class DynamicFacetListConnectionFilterState(
3031
) : AbstractConnection() {
3132

3233
private val filterStateSubscription: Callback<Filters> = {
34+
updateSelections()
35+
}
36+
37+
private val facetOrderSubscription: Callback<List<AttributedFacets>> = {
38+
updateSelections()
39+
}
40+
private fun updateSelections() {
3341
val selectionsPerAttribute = viewModel.orderedFacets
3442
.asSequence()
3543
.map { it.attribute }
@@ -67,12 +75,14 @@ internal class DynamicFacetListConnectionFilterState(
6775

6876
override fun connect() {
6977
super.connect()
78+
viewModel.onFacetOrderChanged.subscribe(facetOrderSubscription)
7079
viewModel.onSelectionsComputed.subscribePast(onSelectionsComputedSubscription)
7180
filterState.filters.subscribePast(filterStateSubscription)
7281
}
7382

7483
override fun disconnect() {
7584
super.disconnect()
85+
viewModel.onFacetOrderChanged.unsubscribe(facetOrderSubscription)
7686
viewModel.onSelectionsComputed.unsubscribe(onSelectionsComputedSubscription)
7787
filterState.filters.unsubscribe(filterStateSubscription)
7888
}

0 commit comments

Comments
 (0)