JoinRoomByAddressEvents -> JoinRoomByAddressEvent

This commit is contained in:
Benoit Marty 2026-01-22 17:16:59 +01:00
parent a243ef7b0b
commit 570903ff6b
7 changed files with 31 additions and 31 deletions

View file

@ -8,8 +8,8 @@
package io.element.android.features.startchat.impl.joinbyaddress
sealed interface JoinRoomByAddressEvents {
data object Dismiss : JoinRoomByAddressEvents
data object Continue : JoinRoomByAddressEvents
data class UpdateAddress(val address: String) : JoinRoomByAddressEvents
sealed interface JoinRoomByAddressEvent {
data object Dismiss : JoinRoomByAddressEvent
data object Continue : JoinRoomByAddressEvent
data class UpdateAddress(val address: String) : JoinRoomByAddressEvent
}

View file

@ -49,16 +49,16 @@ class JoinRoomByAddressPresenter(
var internalAddressState by remember { mutableStateOf<RoomAddressState>(RoomAddressState.Unknown) }
var validateAddress: Boolean by remember { mutableStateOf(false) }
fun handleEvent(event: JoinRoomByAddressEvents) {
fun handleEvent(event: JoinRoomByAddressEvent) {
when (event) {
JoinRoomByAddressEvents.Continue -> {
JoinRoomByAddressEvent.Continue -> {
when (val currentState = internalAddressState) {
is RoomAddressState.RoomFound -> onRoomFound(currentState)
else -> validateAddress = true
}
}
JoinRoomByAddressEvents.Dismiss -> navigator.onDismissJoinRoomByAddress()
is JoinRoomByAddressEvents.UpdateAddress -> {
JoinRoomByAddressEvent.Dismiss -> navigator.onDismissJoinRoomByAddress()
is JoinRoomByAddressEvent.UpdateAddress -> {
validateAddress = false
address = event.address.trim()
}

View file

@ -14,7 +14,7 @@ import io.element.android.libraries.matrix.api.room.alias.ResolvedRoomAlias
data class JoinRoomByAddressState(
val address: String,
val addressState: RoomAddressState,
val eventSink: (JoinRoomByAddressEvents) -> Unit
val eventSink: (JoinRoomByAddressEvent) -> Unit
)
@Immutable

View file

@ -30,7 +30,7 @@ open class JoinRoomByAddressStateProvider : PreviewParameterProvider<JoinRoomByA
fun aJoinRoomByAddressState(
address: String = "",
addressState: RoomAddressState = RoomAddressState.Unknown,
eventSink: (JoinRoomByAddressEvents) -> Unit = {},
eventSink: (JoinRoomByAddressEvent) -> Unit = {},
) = JoinRoomByAddressState(
address = address,
addressState = addressState,

View file

@ -50,7 +50,7 @@ fun JoinRoomByAddressView(
modifier = modifier,
sheetState = sheetState,
onDismissRequest = {
state.eventSink(JoinRoomByAddressEvents.Dismiss)
state.eventSink(JoinRoomByAddressEvent.Dismiss)
},
) {
Column(
@ -64,10 +64,10 @@ fun JoinRoomByAddressView(
addressState = state.addressState,
requestFocus = sheetState.isVisible,
onAddressChange = {
state.eventSink(JoinRoomByAddressEvents.UpdateAddress(it))
state.eventSink(JoinRoomByAddressEvent.UpdateAddress(it))
},
onContinue = {
state.eventSink(JoinRoomByAddressEvents.Continue)
state.eventSink(JoinRoomByAddressEvent.Continue)
},
)
Spacer(modifier = Modifier.height(24.dp))
@ -76,7 +76,7 @@ fun JoinRoomByAddressView(
modifier = Modifier.fillMaxWidth(),
showProgress = state.addressState is RoomAddressState.Resolving,
onClick = {
state.eventSink(JoinRoomByAddressEvents.Continue)
state.eventSink(JoinRoomByAddressEvent.Continue)
}
)
}