RoomMemberListEvents -> RoomMemberListEvent
This commit is contained in:
@@ -10,7 +10,7 @@ package io.element.android.features.roomdetails.impl.members
|
||||
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
|
||||
sealed interface RoomMemberListEvents {
|
||||
data class ChangeSelectedSection(val section: SelectedSection) : RoomMemberListEvents
|
||||
data class RoomMemberSelected(val roomMember: RoomMember) : RoomMemberListEvents
|
||||
sealed interface RoomMemberListEvent {
|
||||
data class ChangeSelectedSection(val section: SelectedSection) : RoomMemberListEvent
|
||||
data class RoomMemberSelected(val roomMember: RoomMember) : RoomMemberListEvent
|
||||
}
|
||||
@@ -125,11 +125,11 @@ class RoomMemberListPresenter(
|
||||
}
|
||||
}
|
||||
|
||||
fun handleEvent(event: RoomMemberListEvents) {
|
||||
fun handleEvent(event: RoomMemberListEvent) {
|
||||
when (event) {
|
||||
is RoomMemberListEvents.RoomMemberSelected ->
|
||||
is RoomMemberListEvent.RoomMemberSelected ->
|
||||
roomModerationState.eventSink(ShowActionsForUser(event.roomMember.toMatrixUser()))
|
||||
is RoomMemberListEvents.ChangeSelectedSection -> selectedSection = event.section
|
||||
is RoomMemberListEvent.ChangeSelectedSection -> selectedSection = event.section
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ data class RoomMemberListState(
|
||||
val canInvite: Boolean,
|
||||
val selectedSection: SelectedSection,
|
||||
val moderationState: RoomMemberModerationState,
|
||||
val eventSink: (RoomMemberListEvents) -> Unit,
|
||||
val eventSink: (RoomMemberListEvent) -> Unit,
|
||||
) {
|
||||
val showBannedSection: Boolean = moderationState.permissions.canBan && roomMembers.dataOrNull()?.banned?.isNotEmpty() == true
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ internal fun aRoomMemberListState(
|
||||
selectedSection: SelectedSection = SelectedSection.MEMBERS,
|
||||
searchQuery: String = "",
|
||||
canInvite: Boolean = false,
|
||||
eventSink: (RoomMemberListEvents) -> Unit = {},
|
||||
eventSink: (RoomMemberListEvent) -> Unit = {},
|
||||
) = RoomMemberListState(
|
||||
roomMembers = roomMembers,
|
||||
filteredRoomMembers = roomMembers.map { it.filter(searchQuery) },
|
||||
|
||||
@@ -25,8 +25,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.SingleChoiceSegmentedButtonRow
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.pluralStringResource
|
||||
@@ -68,7 +66,7 @@ fun RoomMemberListView(
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
fun onSelectUser(roomMember: RoomMember) {
|
||||
state.eventSink(RoomMemberListEvents.RoomMemberSelected(roomMember))
|
||||
state.eventSink(RoomMemberListEvent.RoomMemberSelected(roomMember))
|
||||
}
|
||||
|
||||
Scaffold(
|
||||
@@ -100,7 +98,7 @@ fun RoomMemberListView(
|
||||
selectedSection = state.selectedSection,
|
||||
showBannedSection = state.showBannedSection,
|
||||
searchQuery = state.searchQuery.text.toString(),
|
||||
onSelectedSectionChange = { state.eventSink(RoomMemberListEvents.ChangeSelectedSection(it)) },
|
||||
onSelectedSectionChange = { state.eventSink(RoomMemberListEvent.ChangeSelectedSection(it)) },
|
||||
onSelectUser = ::onSelectUser,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ class RoomMemberListPresenterTest {
|
||||
skipItems(1)
|
||||
val loadedState = awaitItem()
|
||||
assertThat(loadedState.showBannedSection).isTrue()
|
||||
loadedState.eventSink(RoomMemberListEvents.ChangeSelectedSection(SelectedSection.BANNED))
|
||||
loadedState.eventSink(RoomMemberListEvent.ChangeSelectedSection(SelectedSection.BANNED))
|
||||
val bannedSectionState = awaitItem()
|
||||
assertThat(bannedSectionState.selectedSection).isEqualTo(SelectedSection.BANNED)
|
||||
// Now update the room members to have no banned users
|
||||
@@ -188,7 +188,7 @@ class RoomMemberListPresenterTest {
|
||||
)
|
||||
presenter.test {
|
||||
skipItems(1)
|
||||
awaitItem().eventSink(RoomMemberListEvents.RoomMemberSelected(anInvitedVictor()))
|
||||
awaitItem().eventSink(RoomMemberListEvent.RoomMemberSelected(anInvitedVictor()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user