mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
change(space) : last admin navigate to security&privacy
This commit is contained in:
+6
-4
@@ -65,7 +65,7 @@ class SpaceFlowNode(
|
|||||||
data object Root : NavTarget
|
data object Root : NavTarget
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data object Settings : NavTarget
|
data class Settings(val initialTarget: SpaceSettingsFlowNode.NavTarget = SpaceSettingsFlowNode.NavTarget.Root) : NavTarget
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data object Leave : NavTarget
|
data object Leave : NavTarget
|
||||||
@@ -89,7 +89,7 @@ class SpaceFlowNode(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun navigateToRolesAndPermissions() {
|
override fun navigateToRolesAndPermissions() {
|
||||||
// TODO
|
backstack.push(NavTarget.Settings(SpaceSettingsFlowNode.NavTarget.RolesAndPermissions))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
createNode<LeaveSpaceNode>(buildContext, listOf(callback))
|
createNode<LeaveSpaceNode>(buildContext, listOf(callback))
|
||||||
@@ -101,7 +101,7 @@ class SpaceFlowNode(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun navigateToSpaceSettings() {
|
override fun navigateToSpaceSettings() {
|
||||||
backstack.push(NavTarget.Settings)
|
backstack.push(NavTarget.Settings())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun navigateToRoomMemberList() {
|
override fun navigateToRoomMemberList() {
|
||||||
@@ -114,8 +114,10 @@ class SpaceFlowNode(
|
|||||||
}
|
}
|
||||||
createNode<SpaceNode>(buildContext, listOf(callback))
|
createNode<SpaceNode>(buildContext, listOf(callback))
|
||||||
}
|
}
|
||||||
NavTarget.Settings -> {
|
is NavTarget.Settings -> {
|
||||||
val callback = object : SpaceSettingsFlowNode.Callback {
|
val callback = object : SpaceSettingsFlowNode.Callback {
|
||||||
|
override fun initialTarget() = navTarget.initialTarget
|
||||||
|
|
||||||
override fun navigateToSpaceMembers() {
|
override fun navigateToSpaceMembers() {
|
||||||
callback.navigateToRoomMemberList()
|
callback.navigateToRoomMemberList()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -132,8 +132,7 @@ fun LeaveSpaceView(
|
|||||||
state.eventSink(LeaveSpaceEvents.LeaveSpace)
|
state.eventSink(LeaveSpaceEvents.LeaveSpace)
|
||||||
},
|
},
|
||||||
onCancel = onCancel,
|
onCancel = onCancel,
|
||||||
// TODO enable when navigation is ready
|
showRolesAndPermissionsButton = state.isLastAdmin,
|
||||||
showRolesAndPermissionsButton = false, // state.isLastAdmin,
|
|
||||||
onRolesAndPermissionsClick = onRolesAndPermissionsClick,
|
onRolesAndPermissionsClick = onRolesAndPermissionsClick,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-2
@@ -39,13 +39,14 @@ class SpaceSettingsFlowNode(
|
|||||||
private val roomDetailsEditEntryPoint: RoomDetailsEditEntryPoint
|
private val roomDetailsEditEntryPoint: RoomDetailsEditEntryPoint
|
||||||
) : BaseFlowNode<SpaceSettingsFlowNode.NavTarget>(
|
) : BaseFlowNode<SpaceSettingsFlowNode.NavTarget>(
|
||||||
backstack = BackStack(
|
backstack = BackStack(
|
||||||
initialElement = NavTarget.Root,
|
initialElement = initialElement(plugins),
|
||||||
savedStateMap = buildContext.savedStateMap,
|
savedStateMap = buildContext.savedStateMap,
|
||||||
),
|
),
|
||||||
buildContext = buildContext,
|
buildContext = buildContext,
|
||||||
plugins = plugins,
|
plugins = plugins,
|
||||||
) {
|
) {
|
||||||
interface Callback : Plugin {
|
interface Callback : Plugin {
|
||||||
|
fun initialTarget(): NavTarget = NavTarget.Root
|
||||||
fun navigateToSpaceMembers()
|
fun navigateToSpaceMembers()
|
||||||
fun startLeaveSpaceFlow()
|
fun startLeaveSpaceFlow()
|
||||||
fun closeSettings()
|
fun closeSettings()
|
||||||
@@ -56,7 +57,7 @@ class SpaceSettingsFlowNode(
|
|||||||
data object Root : NavTarget
|
data object Root : NavTarget
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data object EditDetails: NavTarget
|
data object EditDetails : NavTarget
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data object SecurityAndPrivacy : NavTarget
|
data object SecurityAndPrivacy : NavTarget
|
||||||
@@ -138,3 +139,7 @@ class SpaceSettingsFlowNode(
|
|||||||
BackstackView(modifier)
|
BackstackView(modifier)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun initialElement(plugins: List<Plugin>): SpaceSettingsFlowNode.NavTarget {
|
||||||
|
return plugins.callback<SpaceSettingsFlowNode.Callback>().initialTarget()
|
||||||
|
}
|
||||||
|
|||||||
+5
-2
@@ -10,8 +10,11 @@ package io.element.android.libraries.architecture
|
|||||||
|
|
||||||
import com.bumble.appyx.core.node.Node
|
import com.bumble.appyx.core.node.Node
|
||||||
import com.bumble.appyx.core.plugin.Plugin
|
import com.bumble.appyx.core.plugin.Plugin
|
||||||
import com.bumble.appyx.core.plugin.plugins
|
|
||||||
|
|
||||||
inline fun <reified I : Plugin> Node.callback(): I {
|
inline fun <reified I : Plugin> Node.callback(): I {
|
||||||
return requireNotNull(plugins<I>().singleOrNull()) { "Make sure to actually pass a Callback plugin to your node" }
|
return plugins.callback()
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fun <reified I : Plugin> List<Plugin>.callback(): I {
|
||||||
|
return requireNotNull(filterIsInstance<I>().singleOrNull()) { "Make sure to actually pass a Callback plugin to your node" }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user