RoomListSearchEvents -> RoomListSearchEvent
This commit is contained in:
@@ -29,7 +29,7 @@ import io.element.android.features.announcement.api.Announcement
|
||||
import io.element.android.features.announcement.api.AnnouncementService
|
||||
import io.element.android.features.home.impl.datasource.RoomListDataSource
|
||||
import io.element.android.features.home.impl.filters.RoomListFiltersState
|
||||
import io.element.android.features.home.impl.search.RoomListSearchEvents
|
||||
import io.element.android.features.home.impl.search.RoomListSearchEvent
|
||||
import io.element.android.features.home.impl.search.RoomListSearchState
|
||||
import io.element.android.features.invite.api.SeenInvitesStore
|
||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents.AcceptInvite
|
||||
@@ -126,7 +126,7 @@ class RoomListPresenter(
|
||||
RoomListEvent.DismissNewNotificationSoundBanner -> coroutineScope.launch {
|
||||
announcementService.onAnnouncementDismissed(Announcement.NewNotificationSound)
|
||||
}
|
||||
RoomListEvent.ToggleSearchResults -> searchState.eventSink(RoomListSearchEvents.ToggleSearchVisibility)
|
||||
RoomListEvent.ToggleSearchResults -> searchState.eventSink(RoomListSearchEvent.ToggleSearchVisibility)
|
||||
is RoomListEvent.ShowContextMenu -> {
|
||||
coroutineScope.showContextMenu(event, contextMenu)
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
package io.element.android.features.home.impl.search
|
||||
|
||||
sealed interface RoomListSearchEvents {
|
||||
data object ToggleSearchVisibility : RoomListSearchEvents
|
||||
data object ClearQuery : RoomListSearchEvents
|
||||
sealed interface RoomListSearchEvent {
|
||||
data object ToggleSearchVisibility : RoomListSearchEvent
|
||||
data object ClearQuery : RoomListSearchEvent
|
||||
}
|
||||
@@ -45,12 +45,12 @@ class RoomListSearchPresenter(
|
||||
dataSource.setSearchQuery(searchQuery.text.toString())
|
||||
}
|
||||
|
||||
fun handleEvent(event: RoomListSearchEvents) {
|
||||
fun handleEvent(event: RoomListSearchEvent) {
|
||||
when (event) {
|
||||
RoomListSearchEvents.ClearQuery -> {
|
||||
RoomListSearchEvent.ClearQuery -> {
|
||||
searchQuery.clearText()
|
||||
}
|
||||
RoomListSearchEvents.ToggleSearchVisibility -> {
|
||||
RoomListSearchEvent.ToggleSearchVisibility -> {
|
||||
isSearchActive = !isSearchActive
|
||||
searchQuery.clearText()
|
||||
}
|
||||
|
||||
@@ -16,5 +16,5 @@ data class RoomListSearchState(
|
||||
val isSearchActive: Boolean,
|
||||
val query: TextFieldState,
|
||||
val results: ImmutableList<RoomListRoomSummary>,
|
||||
val eventSink: (RoomListSearchEvents) -> Unit
|
||||
val eventSink: (RoomListSearchEvent) -> Unit
|
||||
)
|
||||
|
||||
@@ -31,7 +31,7 @@ fun aRoomListSearchState(
|
||||
isSearchActive: Boolean = false,
|
||||
query: String = "",
|
||||
results: ImmutableList<RoomListRoomSummary> = persistentListOf(),
|
||||
eventSink: (RoomListSearchEvents) -> Unit = { },
|
||||
eventSink: (RoomListSearchEvent) -> Unit = { },
|
||||
) = RoomListSearchState(
|
||||
isSearchActive = isSearchActive,
|
||||
query = TextFieldState(initialText = query),
|
||||
|
||||
@@ -59,7 +59,7 @@ internal fun RoomListSearchView(
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
BackHandler(enabled = state.isSearchActive) {
|
||||
state.eventSink(RoomListSearchEvents.ToggleSearchVisibility)
|
||||
state.eventSink(RoomListSearchEvent.ToggleSearchVisibility)
|
||||
}
|
||||
|
||||
AnimatedVisibility(
|
||||
@@ -89,7 +89,7 @@ private fun RoomListSearchContent(
|
||||
val borderColor = MaterialTheme.colorScheme.tertiary
|
||||
val strokeWidth = 1.dp
|
||||
fun onBackButtonClick() {
|
||||
state.eventSink(RoomListSearchEvents.ToggleSearchVisibility)
|
||||
state.eventSink(RoomListSearchEvent.ToggleSearchVisibility)
|
||||
}
|
||||
|
||||
fun onRoomClick(room: RoomListRoomSummary) {
|
||||
@@ -127,7 +127,7 @@ private fun RoomListSearchContent(
|
||||
),
|
||||
trailingIcon = if (state.query.text.isNotEmpty()) {
|
||||
@Composable {
|
||||
IconButton(onClick = { state.eventSink(RoomListSearchEvents.ClearQuery) }) {
|
||||
IconButton(onClick = { state.eventSink(RoomListSearchEvent.ClearQuery) }) {
|
||||
Icon(
|
||||
imageVector = CompoundIcons.Close(),
|
||||
contentDescription = stringResource(CommonStrings.action_cancel)
|
||||
|
||||
@@ -21,7 +21,7 @@ import io.element.android.features.home.impl.datasource.aRoomListRoomSummaryFact
|
||||
import io.element.android.features.home.impl.filters.RoomListFiltersState
|
||||
import io.element.android.features.home.impl.filters.aRoomListFiltersState
|
||||
import io.element.android.features.home.impl.model.createRoomListRoomSummary
|
||||
import io.element.android.features.home.impl.search.RoomListSearchEvents
|
||||
import io.element.android.features.home.impl.search.RoomListSearchEvent
|
||||
import io.element.android.features.home.impl.search.RoomListSearchState
|
||||
import io.element.android.features.home.impl.search.aRoomListSearchState
|
||||
import io.element.android.features.invite.api.SeenInvitesStore
|
||||
@@ -327,7 +327,7 @@ class RoomListPresenterTest {
|
||||
|
||||
@Test
|
||||
fun `present - toggle search menu`() = runTest {
|
||||
val eventRecorder = EventsRecorder<RoomListSearchEvents>()
|
||||
val eventRecorder = EventsRecorder<RoomListSearchEvent>()
|
||||
val searchPresenter: Presenter<RoomListSearchState> = Presenter {
|
||||
aRoomListSearchState(
|
||||
eventSink = eventRecorder
|
||||
@@ -343,13 +343,13 @@ class RoomListPresenterTest {
|
||||
eventRecorder.assertEmpty()
|
||||
initialState.eventSink(RoomListEvent.ToggleSearchResults)
|
||||
eventRecorder.assertSingle(
|
||||
RoomListSearchEvents.ToggleSearchVisibility
|
||||
RoomListSearchEvent.ToggleSearchVisibility
|
||||
)
|
||||
initialState.eventSink(RoomListEvent.ToggleSearchResults)
|
||||
eventRecorder.assertList(
|
||||
listOf(
|
||||
RoomListSearchEvents.ToggleSearchVisibility,
|
||||
RoomListSearchEvents.ToggleSearchVisibility
|
||||
RoomListSearchEvent.ToggleSearchVisibility,
|
||||
RoomListSearchEvent.ToggleSearchVisibility
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -48,11 +48,11 @@ class RoomListSearchPresenterTest {
|
||||
}.test {
|
||||
awaitItem().let { state ->
|
||||
assertThat(state.isSearchActive).isFalse()
|
||||
state.eventSink(RoomListSearchEvents.ToggleSearchVisibility)
|
||||
state.eventSink(RoomListSearchEvent.ToggleSearchVisibility)
|
||||
}
|
||||
awaitItem().let { state ->
|
||||
assertThat(state.isSearchActive).isTrue()
|
||||
state.eventSink(RoomListSearchEvents.ToggleSearchVisibility)
|
||||
state.eventSink(RoomListSearchEvent.ToggleSearchVisibility)
|
||||
}
|
||||
awaitItem().let { state ->
|
||||
assertThat(state.isSearchActive).isFalse()
|
||||
@@ -82,7 +82,7 @@ class RoomListSearchPresenterTest {
|
||||
).isEqualTo(
|
||||
RoomListFilter.NormalizedMatchRoomName("Search")
|
||||
)
|
||||
state.eventSink(RoomListSearchEvents.ClearQuery)
|
||||
state.eventSink(RoomListSearchEvent.ClearQuery)
|
||||
}
|
||||
awaitItem().let { state ->
|
||||
assertThat(state.query.text.toString()).isEmpty()
|
||||
|
||||
Reference in New Issue
Block a user