StartChatEvents -> StartChatEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:27:26 +02:00
parent 771840884a
commit cf7d5ab4b4
7 changed files with 27 additions and 27 deletions
@@ -10,7 +10,7 @@ package io.element.android.features.startchat.impl.root
import io.element.android.libraries.matrix.api.user.MatrixUser
sealed interface StartChatEvents {
data class StartDM(val matrixUser: MatrixUser) : StartChatEvents
data object CancelStartDM : StartChatEvents
sealed interface StartChatEvent {
data class StartDM(val matrixUser: MatrixUser) : StartChatEvent
data object CancelStartDM : StartChatEvent
}
@@ -49,16 +49,16 @@ class StartChatPresenter(
val localCoroutineScope = rememberCoroutineScope()
val startDmActionState: MutableState<AsyncAction<RoomId>> = remember { mutableStateOf(AsyncAction.Uninitialized) }
fun handleEvent(event: StartChatEvents) {
fun handleEvent(event: StartChatEvent) {
when (event) {
is StartChatEvents.StartDM -> localCoroutineScope.launch {
is StartChatEvent.StartDM -> localCoroutineScope.launch {
startDMAction.execute(
matrixUser = event.matrixUser,
createIfDmDoesNotExist = startDmActionState.value is AsyncAction.Confirming,
actionState = startDmActionState,
)
}
StartChatEvents.CancelStartDM -> startDmActionState.value = AsyncAction.Uninitialized
StartChatEvent.CancelStartDM -> startDmActionState.value = AsyncAction.Uninitialized
}
}
@@ -16,5 +16,5 @@ data class StartChatState(
val applicationName: String,
val userListState: UserListState,
val startDmAction: AsyncAction<RoomId>,
val eventSink: (StartChatEvents) -> Unit,
val eventSink: (StartChatEvent) -> Unit,
)
@@ -72,7 +72,7 @@ fun aCreateRoomRootState(
applicationName: String = "Element X Preview",
userListState: UserListState = aUserListState(),
startDmAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
eventSink: (StartChatEvents) -> Unit = {},
eventSink: (StartChatEvent) -> Unit = {},
) = StartChatState(
applicationName = applicationName,
userListState = userListState,
@@ -94,7 +94,7 @@ fun StartChatView(
onSelectUser = {
coroutineScope.launch {
view.hideKeyboardAndAwaitAnimation()
state.eventSink(StartChatEvents.StartDM(it))
state.eventSink(StartChatEvent.StartDM(it))
}
},
onDeselectUser = { },
@@ -124,21 +124,21 @@ fun StartChatView(
errorMessage = { stringResource(R.string.screen_start_chat_error_starting_chat) },
onRetry = {
state.userListState.selectedUsers.firstOrNull()
?.let { state.eventSink(StartChatEvents.StartDM(it)) }
?.let { state.eventSink(StartChatEvent.StartDM(it)) }
// Cancel start DM if there is no more selected user (should not happen)
?: state.eventSink(StartChatEvents.CancelStartDM)
?: state.eventSink(StartChatEvent.CancelStartDM)
},
onErrorDismiss = { state.eventSink(StartChatEvents.CancelStartDM) },
onErrorDismiss = { state.eventSink(StartChatEvent.CancelStartDM) },
confirmationDialog = { data ->
if (data is ConfirmingStartDmWithMatrixUser) {
CreateDmConfirmationBottomSheet(
matrixUser = data.matrixUser,
isUserIdentityUnknown = data.isUserIdentityUnknown,
onSendInvite = {
state.eventSink(StartChatEvents.StartDM(data.matrixUser))
state.eventSink(StartChatEvent.StartDM(data.matrixUser))
},
onDismiss = {
state.eventSink(StartChatEvents.CancelStartDM)
state.eventSink(StartChatEvent.CancelStartDM)
},
)
}