RoomListFiltersEvents -> RoomListFiltersEvent
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
|
||||
package io.element.android.features.home.impl.filters
|
||||
|
||||
sealed interface RoomListFiltersEvents {
|
||||
data class ToggleFilter(val filter: RoomListFilter) : RoomListFiltersEvents
|
||||
data object ClearSelectedFilters : RoomListFiltersEvents
|
||||
sealed interface RoomListFiltersEvent {
|
||||
data class ToggleFilter(val filter: RoomListFilter) : RoomListFiltersEvent
|
||||
data object ClearSelectedFilters : RoomListFiltersEvent
|
||||
}
|
||||
@@ -28,12 +28,12 @@ class RoomListFiltersPresenter(
|
||||
|
||||
@Composable
|
||||
override fun present(): RoomListFiltersState {
|
||||
fun handleEvent(event: RoomListFiltersEvents) {
|
||||
fun handleEvent(event: RoomListFiltersEvent) {
|
||||
when (event) {
|
||||
RoomListFiltersEvents.ClearSelectedFilters -> {
|
||||
RoomListFiltersEvent.ClearSelectedFilters -> {
|
||||
filterSelectionStrategy.clear()
|
||||
}
|
||||
is RoomListFiltersEvents.ToggleFilter -> {
|
||||
is RoomListFiltersEvent.ToggleFilter -> {
|
||||
filterSelectionStrategy.toggle(event.filter)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
data class RoomListFiltersState(
|
||||
val filterSelectionStates: ImmutableList<FilterSelectionState>,
|
||||
val eventSink: (RoomListFiltersEvents) -> Unit,
|
||||
val eventSink: (RoomListFiltersEvent) -> Unit,
|
||||
) {
|
||||
val hasAnyFilterSelected = filterSelectionStates.any { it.isSelected }
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ class RoomListFiltersStateProvider : PreviewParameterProvider<RoomListFiltersSta
|
||||
|
||||
fun aRoomListFiltersState(
|
||||
filterSelectionStates: List<FilterSelectionState> = RoomListFilter.entries.map { FilterSelectionState(it, isSelected = false) },
|
||||
eventSink: (RoomListFiltersEvents) -> Unit = {},
|
||||
eventSink: (RoomListFiltersEvent) -> Unit = {},
|
||||
) = RoomListFiltersState(
|
||||
filterSelectionStates = filterSelectionStates.toImmutableList(),
|
||||
eventSink = eventSink,
|
||||
|
||||
@@ -60,11 +60,11 @@ fun RoomListFiltersView(
|
||||
modifier: Modifier = Modifier
|
||||
) {
|
||||
fun onClearFiltersClick() {
|
||||
state.eventSink(RoomListFiltersEvents.ClearSelectedFilters)
|
||||
state.eventSink(RoomListFiltersEvent.ClearSelectedFilters)
|
||||
}
|
||||
|
||||
fun onToggleFilter(filter: RoomListFilter) {
|
||||
state.eventSink(RoomListFiltersEvents.ToggleFilter(filter))
|
||||
state.eventSink(RoomListFiltersEvent.ToggleFilter(filter))
|
||||
}
|
||||
|
||||
var scrollToStart by remember { mutableIntStateOf(0) }
|
||||
|
||||
@@ -49,7 +49,7 @@ class RoomListFiltersPresenterTest {
|
||||
moleculeFlow(RecompositionMode.Immediate) {
|
||||
presenter.present()
|
||||
}.test {
|
||||
awaitItem().eventSink.invoke(RoomListFiltersEvents.ToggleFilter(RoomListFilter.Rooms))
|
||||
awaitItem().eventSink.invoke(RoomListFiltersEvent.ToggleFilter(RoomListFilter.Rooms))
|
||||
awaitLastSequentialItem().let { state ->
|
||||
|
||||
assertThat(state.hasAnyFilterSelected).isTrue()
|
||||
@@ -66,7 +66,7 @@ class RoomListFiltersPresenterTest {
|
||||
assertThat(roomListCurrentFilter.filters).containsExactly(
|
||||
MatrixRoomListFilter.Category.Group,
|
||||
)
|
||||
state.eventSink.invoke(RoomListFiltersEvents.ToggleFilter(RoomListFilter.Rooms))
|
||||
state.eventSink.invoke(RoomListFiltersEvent.ToggleFilter(RoomListFilter.Rooms))
|
||||
}
|
||||
awaitLastSequentialItem().let { state ->
|
||||
assertThat(state.hasAnyFilterSelected).isFalse()
|
||||
@@ -91,10 +91,10 @@ class RoomListFiltersPresenterTest {
|
||||
moleculeFlow(RecompositionMode.Immediate) {
|
||||
presenter.present()
|
||||
}.test {
|
||||
awaitItem().eventSink.invoke(RoomListFiltersEvents.ToggleFilter(RoomListFilter.Rooms))
|
||||
awaitItem().eventSink.invoke(RoomListFiltersEvent.ToggleFilter(RoomListFilter.Rooms))
|
||||
awaitLastSequentialItem().let { state ->
|
||||
assertThat(state.hasAnyFilterSelected).isTrue()
|
||||
state.eventSink.invoke(RoomListFiltersEvents.ClearSelectedFilters)
|
||||
state.eventSink.invoke(RoomListFiltersEvent.ClearSelectedFilters)
|
||||
}
|
||||
awaitLastSequentialItem().let { state ->
|
||||
assertThat(state.hasAnyFilterSelected).isFalse()
|
||||
|
||||
@@ -27,7 +27,7 @@ class RoomListFiltersViewTest {
|
||||
|
||||
@Test
|
||||
fun `clicking on filters generates expected Event`() {
|
||||
val eventsRecorder = EventsRecorder<RoomListFiltersEvents>()
|
||||
val eventsRecorder = EventsRecorder<RoomListFiltersEvent>()
|
||||
rule.setContent {
|
||||
RoomListFiltersView(
|
||||
state = aRoomListFiltersState(eventSink = eventsRecorder),
|
||||
@@ -36,14 +36,14 @@ class RoomListFiltersViewTest {
|
||||
rule.clickOn(R.string.screen_roomlist_filter_rooms)
|
||||
eventsRecorder.assertList(
|
||||
listOf(
|
||||
RoomListFiltersEvents.ToggleFilter(RoomListFilter.Rooms),
|
||||
RoomListFiltersEvent.ToggleFilter(RoomListFilter.Rooms),
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `clicking on clear filters generates expected Event`() {
|
||||
val eventsRecorder = EventsRecorder<RoomListFiltersEvents>()
|
||||
val eventsRecorder = EventsRecorder<RoomListFiltersEvent>()
|
||||
rule.setContent {
|
||||
RoomListFiltersView(
|
||||
state = aRoomListFiltersState(
|
||||
@@ -55,7 +55,7 @@ class RoomListFiltersViewTest {
|
||||
rule.pressTag(TestTags.homeScreenClearFilters.value)
|
||||
eventsRecorder.assertList(
|
||||
listOf(
|
||||
RoomListFiltersEvents.ClearSelectedFilters,
|
||||
RoomListFiltersEvent.ClearSelectedFilters,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user