refactor: switch to rememberNavBackStack helper

This commit is contained in:
Harsh Shandilya 2025-05-25 16:52:41 +05:30
parent 1385edc3bf
commit 699afafcf9
4 changed files with 8 additions and 6 deletions

View file

@ -27,6 +27,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.testTag import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.navigation3.runtime.NavKey
import dev.chrisbanes.haze.HazeDefaults import dev.chrisbanes.haze.HazeDefaults
import dev.chrisbanes.haze.HazeState import dev.chrisbanes.haze.HazeState
import dev.chrisbanes.haze.HazeStyle import dev.chrisbanes.haze.HazeStyle
@ -40,7 +41,7 @@ const val AnimationDuration = 100
@Composable @Composable
fun ClawNavigationBar( fun ClawNavigationBar(
backStack: SnapshotStateList<Destination>, backStack: SnapshotStateList<NavKey>,
items: ImmutableList<NavigationItem>, items: ImmutableList<NavigationItem>,
isVisible: Boolean, isVisible: Boolean,
hazeState: HazeState, hazeState: HazeState,

View file

@ -22,12 +22,12 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.snapshots.SnapshotStateList import androidx.compose.runtime.snapshots.SnapshotStateList
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.testTag import androidx.compose.ui.platform.testTag
import dev.msfjarvis.claw.android.ui.navigation.Destination import androidx.navigation3.runtime.NavKey
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
@Composable @Composable
fun ClawNavigationRail( fun ClawNavigationRail(
backStack: SnapshotStateList<Destination>, backStack: SnapshotStateList<NavKey>,
items: ImmutableList<NavigationItem>, items: ImmutableList<NavigationItem>,
isVisible: Boolean, isVisible: Boolean,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,

View file

@ -15,10 +15,11 @@ import androidx.compose.material.icons.outlined.FavoriteBorder
import androidx.compose.material.icons.outlined.NewReleases import androidx.compose.material.icons.outlined.NewReleases
import androidx.compose.material.icons.outlined.Whatshot import androidx.compose.material.icons.outlined.Whatshot
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.navigation3.runtime.NavKey
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
sealed interface Destination : Parcelable sealed interface Destination : Parcelable, NavKey
@Parcelize @Serializable data object Hottest : Destination @Parcelize @Serializable data object Hottest : Destination

View file

@ -27,7 +27,6 @@ import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -42,6 +41,7 @@ import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation3.runtime.entry import androidx.navigation3.runtime.entry
import androidx.navigation3.runtime.entryProvider import androidx.navigation3.runtime.entryProvider
import androidx.navigation3.runtime.rememberNavBackStack
import androidx.navigation3.ui.NavDisplay import androidx.navigation3.ui.NavDisplay
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
import com.deliveryhero.whetstone.compose.injectedViewModel import com.deliveryhero.whetstone.compose.injectedViewModel
@ -83,7 +83,7 @@ fun Nav3Screen(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
viewModel: ClawViewModel = injectedViewModel(), viewModel: ClawViewModel = injectedViewModel(),
) { ) {
val backStack = remember { mutableStateListOf<Destination>(Hottest) } val backStack = rememberNavBackStack<Destination>(Hottest)
// region Pain // region Pain
val context = LocalContext.current val context = LocalContext.current