misc(navigation) : add onDetailsClick on SpaceView
This commit is contained in:
@@ -166,6 +166,9 @@ class JoinedRoomLoadedFlowNode(
|
||||
callbacks.forEach { it.onOpenRoom(roomId, viaParameters) }
|
||||
}
|
||||
|
||||
override fun onOpenDetails() {
|
||||
backstack.push(NavTarget.RoomDetails)
|
||||
}
|
||||
}
|
||||
return spaceEntryPoint.nodeBuilder(this, buildContext)
|
||||
.inputs(SpaceEntryPoint.Inputs(roomId = inputs.room.roomId))
|
||||
|
||||
@@ -32,5 +32,6 @@ interface SpaceEntryPoint : FeatureEntryPoint {
|
||||
|
||||
interface Callback : Plugin {
|
||||
fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
|
||||
fun onOpenDetails()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +84,10 @@ class SpaceFlowNode(
|
||||
callback.onOpenRoom(roomId, viaParameters)
|
||||
}
|
||||
|
||||
override fun onOpenDetails() {
|
||||
callback.onOpenDetails()
|
||||
}
|
||||
|
||||
override fun onLeaveSpace() {
|
||||
backstack.push(NavTarget.Leave)
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ class SpaceNode(
|
||||
) : Node(buildContext, plugins = plugins) {
|
||||
interface Callback : Plugin {
|
||||
fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
|
||||
fun onOpenDetails()
|
||||
fun onLeaveSpace()
|
||||
}
|
||||
|
||||
@@ -76,6 +77,9 @@ class SpaceNode(
|
||||
onRoomClick = { spaceRoom ->
|
||||
callback.onOpenRoom(spaceRoom.roomId, spaceRoom.via)
|
||||
},
|
||||
onDetailsClick = {
|
||||
callback.onOpenDetails()
|
||||
},
|
||||
onShareSpace = {
|
||||
onShareRoom(context)
|
||||
},
|
||||
|
||||
@@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -24,6 +25,7 @@ import androidx.compose.runtime.rememberUpdatedState
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.semantics.heading
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
@@ -73,6 +75,7 @@ fun SpaceView(
|
||||
onRoomClick: (spaceRoom: SpaceRoom) -> Unit,
|
||||
onShareSpace: () -> Unit,
|
||||
onLeaveSpaceClick: () -> Unit,
|
||||
onDetailsClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
acceptDeclineInviteView: @Composable () -> Unit,
|
||||
) {
|
||||
@@ -84,6 +87,7 @@ fun SpaceView(
|
||||
onBackClick = onBackClick,
|
||||
onLeaveSpaceClick = onLeaveSpaceClick,
|
||||
onShareSpace = onShareSpace,
|
||||
onDetailsClick = onDetailsClick
|
||||
)
|
||||
},
|
||||
content = { padding ->
|
||||
@@ -244,6 +248,7 @@ private fun SpaceViewTopBar(
|
||||
currentSpace: SpaceRoom?,
|
||||
onBackClick: () -> Unit,
|
||||
onLeaveSpaceClick: () -> Unit,
|
||||
onDetailsClick: () -> Unit,
|
||||
onShareSpace: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
@@ -254,9 +259,14 @@ private fun SpaceViewTopBar(
|
||||
},
|
||||
title = {
|
||||
if (currentSpace != null) {
|
||||
val roundedCornerShape = RoundedCornerShape(8.dp)
|
||||
SpaceAvatarAndNameRow(
|
||||
name = currentSpace.displayName,
|
||||
avatarData = currentSpace.getAvatarData(AvatarSize.TimelineRoom),
|
||||
modifier = Modifier
|
||||
.clip(roundedCornerShape)
|
||||
// TODO enable when screen ready for space
|
||||
// .clickable(onClick = onDetailsClick)
|
||||
)
|
||||
}
|
||||
},
|
||||
@@ -386,6 +396,7 @@ internal fun SpaceViewPreview(
|
||||
onShareSpace = {},
|
||||
onLeaveSpaceClick = {},
|
||||
acceptDeclineInviteView = {},
|
||||
onDetailsClick = {},
|
||||
onBackClick = {},
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user