mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
StartChatEvents -> StartChatEvent
This commit is contained in:
+3
-3
@@ -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
|
||||
}
|
||||
+3
-3
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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,
|
||||
)
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+6
-6
@@ -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)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user