Appyx : quick management of PermanentChild
This commit is contained in:
@@ -26,8 +26,10 @@ import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import com.bumble.appyx.core.composable.Children
|
||||
import com.bumble.appyx.core.composable.PermanentChild
|
||||
import com.bumble.appyx.core.lifecycle.subscribe
|
||||
import com.bumble.appyx.core.modality.BuildContext
|
||||
import com.bumble.appyx.core.navigation.model.permanent.PermanentNavModel
|
||||
import com.bumble.appyx.core.node.Node
|
||||
import com.bumble.appyx.core.plugin.Plugin
|
||||
import com.bumble.appyx.core.plugin.plugins
|
||||
@@ -95,6 +97,10 @@ class LoggedInFlowNode @AssistedInject constructor(
|
||||
initialElement = NavTarget.RoomList,
|
||||
savedStateMap = buildContext.savedStateMap,
|
||||
),
|
||||
permanentNavModel = PermanentNavModel(
|
||||
NavTarget.Permanent,
|
||||
savedStateMap = buildContext.savedStateMap,
|
||||
),
|
||||
buildContext = buildContext,
|
||||
plugins = plugins
|
||||
) {
|
||||
@@ -328,7 +334,7 @@ class LoggedInFlowNode @AssistedInject constructor(
|
||||
val isFtueDisplayed by ftueState.shouldDisplayFlow.collectAsState()
|
||||
|
||||
if (!isFtueDisplayed) {
|
||||
PermanentChild(navTarget = NavTarget.Permanent)
|
||||
PermanentChild(permanentNavModel = permanentNavModel, navTarget = NavTarget.Permanent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ package io.element.android.libraries.architecture
|
||||
import androidx.compose.runtime.Stable
|
||||
import com.bumble.appyx.core.children.ChildEntry
|
||||
import com.bumble.appyx.core.modality.BuildContext
|
||||
import com.bumble.appyx.core.navigation.model.combined.plus
|
||||
import com.bumble.appyx.core.navigation.model.permanent.PermanentNavModel
|
||||
import com.bumble.appyx.core.node.Node
|
||||
import com.bumble.appyx.core.node.ParentNode
|
||||
import com.bumble.appyx.core.plugin.Plugin
|
||||
@@ -33,10 +35,11 @@ import com.bumble.appyx.navmodel.backstack.BackStack
|
||||
abstract class BackstackNode<NavTarget : Any>(
|
||||
val backstack: BackStack<NavTarget>,
|
||||
buildContext: BuildContext,
|
||||
plugins: List<Plugin>,
|
||||
val permanentNavModel: PermanentNavModel<NavTarget> = PermanentNavModel(emptySet(), null),
|
||||
childKeepMode: ChildEntry.KeepMode = ChildEntry.KeepMode.KEEP,
|
||||
plugins: List<Plugin>
|
||||
) : ParentNode<NavTarget>(
|
||||
navModel = backstack,
|
||||
navModel = backstack + permanentNavModel,
|
||||
buildContext = buildContext,
|
||||
plugins = plugins,
|
||||
childKeepMode = childKeepMode,
|
||||
|
||||
Reference in New Issue
Block a user