refactor codes

pull/54/head
Saeed Noshadi 3 years ago
parent 698d51cdbf
commit 0f53945405

@ -65,7 +65,9 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
val niaTopLevelNavigation = remember(navController) { val niaTopLevelNavigation = remember(navController) {
NiaTopLevelNavigation(navController) NiaTopLevelNavigation(navController)
} }
var indexOfSelectedItem by rememberSaveable {
mutableStateOf(0)
}
NiaBackground { NiaBackground {
Scaffold( Scaffold(
modifier = Modifier, modifier = Modifier,
@ -74,8 +76,11 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
bottomBar = { bottomBar = {
if (windowSizeClass.widthSizeClass == WindowWidthSizeClass.Compact) { if (windowSizeClass.widthSizeClass == WindowWidthSizeClass.Compact) {
NiABottomBar( NiABottomBar(
indexOfSelectedItem = indexOfSelectedItem,
onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo
) ) { selectedIndex ->
indexOfSelectedItem = selectedIndex
}
} }
} }
) { padding -> ) { padding ->
@ -90,9 +95,12 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
) { ) {
if (windowSizeClass.widthSizeClass != WindowWidthSizeClass.Compact) { if (windowSizeClass.widthSizeClass != WindowWidthSizeClass.Compact) {
NiANavRail( NiANavRail(
indexOfSelectedItem = indexOfSelectedItem,
onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo, onNavigateToTopLevelDestination = niaTopLevelNavigation::navigateTo,
modifier = Modifier.safeDrawingPadding() modifier = Modifier.safeDrawingPadding()
) ) { selectedIndex ->
indexOfSelectedItem = selectedIndex
}
} }
NiaNavHost( NiaNavHost(
@ -110,19 +118,19 @@ fun NiaApp(windowSizeClass: WindowSizeClass) {
@Composable @Composable
private fun NiANavRail( private fun NiANavRail(
indexOfSelectedItem: Int,
onNavigateToTopLevelDestination: (TopLevelDestination) -> Unit, onNavigateToTopLevelDestination: (TopLevelDestination) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
onSelectedItem: (Int) -> Unit
) { ) {
NavigationRail(modifier = modifier) { NavigationRail(modifier = modifier) {
var indexOfSelectedItem by rememberSaveable {
mutableStateOf(0)
}
TOP_LEVEL_DESTINATIONS.forEachIndexed { itemIndex, destination -> TOP_LEVEL_DESTINATIONS.forEachIndexed { itemIndex, destination ->
val isSelect = indexOfSelectedItem == itemIndex val isSelect = indexOfSelectedItem == itemIndex
NavigationRailItem( NavigationRailItem(
selected = isSelect, selected = isSelect,
onClick = { onClick = {
indexOfSelectedItem = itemIndex onSelectedItem(itemIndex)
onNavigateToTopLevelDestination(destination) onNavigateToTopLevelDestination(destination)
}, },
icon = { icon = {
@ -139,7 +147,9 @@ private fun NiANavRail(
@Composable @Composable
private fun NiABottomBar( private fun NiABottomBar(
onNavigateToTopLevelDestination: (TopLevelDestination) -> Unit indexOfSelectedItem: Int,
onNavigateToTopLevelDestination: (TopLevelDestination) -> Unit,
onSelectedItem: (Int) -> Unit
) { ) {
// Wrap the navigation bar in a surface so the color behind the system // Wrap the navigation bar in a surface so the color behind the system
// navigation is equal to the container color of the navigation bar. // navigation is equal to the container color of the navigation bar.
@ -152,15 +162,13 @@ private fun NiABottomBar(
), ),
tonalElevation = 0.dp tonalElevation = 0.dp
) { ) {
var indexOfSelectedItem by rememberSaveable {
mutableStateOf(0)
}
TOP_LEVEL_DESTINATIONS.forEachIndexed { itemIndex, destination -> TOP_LEVEL_DESTINATIONS.forEachIndexed { itemIndex, destination ->
val isSelect = indexOfSelectedItem == itemIndex val isSelect = indexOfSelectedItem == itemIndex
NavigationBarItem( NavigationBarItem(
selected = isSelect, selected = isSelect,
onClick = { onClick = {
indexOfSelectedItem = itemIndex onSelectedItem(itemIndex)
onNavigateToTopLevelDestination(destination) onNavigateToTopLevelDestination(destination)
}, },
icon = { icon = {

Loading…
Cancel
Save