mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
misc(navigation) : add onDetailsClick on SpaceView
This commit is contained in:
+3
@@ -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))
|
||||||
|
|||||||
+1
@@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -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)
|
||||||
},
|
},
|
||||||
|
|||||||
+11
@@ -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 = {},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user