feature (space) : use via parameter from space room

This commit is contained in:
ganfra
2025-09-24 14:11:46 +02:00
parent 28bca11c03
commit af5234478c
5 changed files with 9 additions and 10 deletions

View File

@@ -366,8 +366,8 @@ class LoggedInFlowNode(
}
}
val spaceCallback = object : SpaceEntryPoint.Callback {
override fun onOpenRoom(roomId: RoomId) {
backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias()))
override fun onOpenRoom(roomId: RoomId, viaParameters: List<String>) {
backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias(), serverNames = viaParameters))
}
}
val inputs = RoomFlowNode.Inputs(

View File

@@ -31,6 +31,6 @@ interface SpaceEntryPoint : FeatureEntryPoint {
) : NodeInputs
interface Callback : Plugin {
fun onOpenRoom(roomId: RoomId)
fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
}
}

View File

@@ -36,8 +36,8 @@ class SpaceNode(
SpaceView(
state = state,
onBackClick = ::navigateUp,
onRoomClick = { roomId ->
callback.onOpenRoom(roomId)
onRoomClick = { spaceRoom ->
callback.onOpenRoom(spaceRoom.roomId, spaceRoom.via)
},
modifier = modifier
)

View File

@@ -39,7 +39,6 @@ import io.element.android.libraries.designsystem.theme.components.CircularProgre
import io.element.android.libraries.designsystem.theme.components.Scaffold
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TopAppBar
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
import io.element.android.libraries.matrix.ui.components.SpaceHeaderView
@@ -52,7 +51,7 @@ import kotlinx.collections.immutable.toImmutableList
fun SpaceView(
state: SpaceState,
onBackClick: () -> Unit,
onRoomClick: (roomId: RoomId) -> Unit,
onRoomClick: (spaceRoom: SpaceRoom) -> Unit,
modifier: Modifier = Modifier,
) {
Scaffold(
@@ -76,7 +75,7 @@ fun SpaceView(
@Composable
private fun SpaceViewContent(
state: SpaceState,
onRoomClick: (roomId: RoomId) -> Unit,
onRoomClick: (spaceRoom: SpaceRoom) -> Unit,
modifier: Modifier = Modifier,
) {
LazyColumn(modifier.fillMaxSize()) {
@@ -102,7 +101,7 @@ private fun SpaceViewContent(
showUnreadIndicator = isInvitation && spaceRoom.roomId !in state.seenSpaceInvites,
hideAvatars = isInvitation && state.hideInvitesAvatar,
onClick = {
onRoomClick(spaceRoom.roomId)
onRoomClick(spaceRoom)
},
onLongClick = {
// TODO

View File

@@ -49,7 +49,7 @@ class DefaultSpaceEntryPointTest {
)
}
val callback = object : SpaceEntryPoint.Callback {
override fun onOpenRoom(roomId: RoomId) {
override fun onOpenRoom(roomId: RoomId, viaParameters: List<String>) {
lambdaError()
}
}