RoomMemberListEvents -> RoomMemberListEvent

This commit is contained in:
Benoit Marty
2026-01-27 14:56:58 +01:00
parent 020484f605
commit 1d7f238f11
6 changed files with 12 additions and 14 deletions

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}

View File

@@ -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) },

View File

@@ -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,
)
}

View File

@@ -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()))
}
}
}