misc(navigation) : add onDetailsClick on SpaceView
This commit is contained in:
parent
06c26582f2
commit
2949dfb426
5 changed files with 23 additions and 0 deletions
|
|
@ -166,6 +166,9 @@ class JoinedRoomLoadedFlowNode(
|
||||||
callbacks.forEach { it.onOpenRoom(roomId, viaParameters) }
|
callbacks.forEach { it.onOpenRoom(roomId, viaParameters) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onOpenDetails() {
|
||||||
|
backstack.push(NavTarget.RoomDetails)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return spaceEntryPoint.nodeBuilder(this, buildContext)
|
return spaceEntryPoint.nodeBuilder(this, buildContext)
|
||||||
.inputs(SpaceEntryPoint.Inputs(roomId = inputs.room.roomId))
|
.inputs(SpaceEntryPoint.Inputs(roomId = inputs.room.roomId))
|
||||||
|
|
|
||||||
|
|
@ -32,5 +32,6 @@ interface SpaceEntryPoint : FeatureEntryPoint {
|
||||||
|
|
||||||
interface Callback : Plugin {
|
interface Callback : Plugin {
|
||||||
fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
|
fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
|
||||||
|
fun onOpenDetails()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,10 @@ class SpaceFlowNode(
|
||||||
callback.onOpenRoom(roomId, viaParameters)
|
callback.onOpenRoom(roomId, viaParameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onOpenDetails() {
|
||||||
|
callback.onOpenDetails()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onLeaveSpace() {
|
override fun onLeaveSpace() {
|
||||||
backstack.push(NavTarget.Leave)
|
backstack.push(NavTarget.Leave)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ class SpaceNode(
|
||||||
) : Node(buildContext, plugins = plugins) {
|
) : Node(buildContext, plugins = plugins) {
|
||||||
interface Callback : Plugin {
|
interface Callback : Plugin {
|
||||||
fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
|
fun onOpenRoom(roomId: RoomId, viaParameters: List<String>)
|
||||||
|
fun onOpenDetails()
|
||||||
fun onLeaveSpace()
|
fun onLeaveSpace()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,6 +77,9 @@ class SpaceNode(
|
||||||
onRoomClick = { spaceRoom ->
|
onRoomClick = { spaceRoom ->
|
||||||
callback.onOpenRoom(spaceRoom.roomId, spaceRoom.via)
|
callback.onOpenRoom(spaceRoom.roomId, spaceRoom.via)
|
||||||
},
|
},
|
||||||
|
onDetailsClick = {
|
||||||
|
callback.onOpenDetails()
|
||||||
|
},
|
||||||
onShareSpace = {
|
onShareSpace = {
|
||||||
onShareRoom(context)
|
onShareRoom(context)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
|
@ -24,6 +25,7 @@ import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.semantics.heading
|
import androidx.compose.ui.semantics.heading
|
||||||
import androidx.compose.ui.semantics.semantics
|
import androidx.compose.ui.semantics.semantics
|
||||||
|
|
@ -73,6 +75,7 @@ fun SpaceView(
|
||||||
onRoomClick: (spaceRoom: SpaceRoom) -> Unit,
|
onRoomClick: (spaceRoom: SpaceRoom) -> Unit,
|
||||||
onShareSpace: () -> Unit,
|
onShareSpace: () -> Unit,
|
||||||
onLeaveSpaceClick: () -> Unit,
|
onLeaveSpaceClick: () -> Unit,
|
||||||
|
onDetailsClick: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
acceptDeclineInviteView: @Composable () -> Unit,
|
acceptDeclineInviteView: @Composable () -> Unit,
|
||||||
) {
|
) {
|
||||||
|
|
@ -84,6 +87,7 @@ fun SpaceView(
|
||||||
onBackClick = onBackClick,
|
onBackClick = onBackClick,
|
||||||
onLeaveSpaceClick = onLeaveSpaceClick,
|
onLeaveSpaceClick = onLeaveSpaceClick,
|
||||||
onShareSpace = onShareSpace,
|
onShareSpace = onShareSpace,
|
||||||
|
onDetailsClick = onDetailsClick
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
content = { padding ->
|
content = { padding ->
|
||||||
|
|
@ -244,6 +248,7 @@ private fun SpaceViewTopBar(
|
||||||
currentSpace: SpaceRoom?,
|
currentSpace: SpaceRoom?,
|
||||||
onBackClick: () -> Unit,
|
onBackClick: () -> Unit,
|
||||||
onLeaveSpaceClick: () -> Unit,
|
onLeaveSpaceClick: () -> Unit,
|
||||||
|
onDetailsClick: () -> Unit,
|
||||||
onShareSpace: () -> Unit,
|
onShareSpace: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
|
|
@ -254,9 +259,14 @@ private fun SpaceViewTopBar(
|
||||||
},
|
},
|
||||||
title = {
|
title = {
|
||||||
if (currentSpace != null) {
|
if (currentSpace != null) {
|
||||||
|
val roundedCornerShape = RoundedCornerShape(8.dp)
|
||||||
SpaceAvatarAndNameRow(
|
SpaceAvatarAndNameRow(
|
||||||
name = currentSpace.displayName,
|
name = currentSpace.displayName,
|
||||||
avatarData = currentSpace.getAvatarData(AvatarSize.TimelineRoom),
|
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 = {},
|
onShareSpace = {},
|
||||||
onLeaveSpaceClick = {},
|
onLeaveSpaceClick = {},
|
||||||
acceptDeclineInviteView = {},
|
acceptDeclineInviteView = {},
|
||||||
|
onDetailsClick = {},
|
||||||
onBackClick = {},
|
onBackClick = {},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue