Skip to content

Commit

Permalink
Remove animation of bars to reduce layout jumping
Browse files Browse the repository at this point in the history
  • Loading branch information
Faltenreich committed Mar 24, 2024
1 parent 05add71 commit 1d91266
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions shared/src/commonMain/kotlin/com/faltenreich/diaguard/MainView.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.faltenreich.diaguard

import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
Expand Down Expand Up @@ -36,20 +35,22 @@ fun MainView(
) {
val snackbarHostState = remember { SnackbarHostState().also { navigation.snackbarState = it } }
val modal = navigation.modal.collectAsState().value

when (val viewState = navigationViewModel.collectState()) {
null -> LoadingIndicator(modifier = modifier)

else -> Box(modifier = modifier) {
Navigator(screen = viewState.startScreen) { navigator ->
navigation.navigator = navigator

Box {
var openBottomSheet by rememberSaveable { mutableStateOf(false) }
val bottomSheetState = rememberBottomSheetState()
Scaffold(
topBar = {
val screen = navigator.lastItem as? Screen
val style = screen?.topAppBarStyle ?: TopAppBarStyle.Hidden
AnimatedVisibility(style != TopAppBarStyle.Hidden) {
// TODO: Extract to prevent jumping during transition
if (style != TopAppBarStyle.Hidden) {
TopAppBar(style)
}
},
Expand All @@ -61,21 +62,17 @@ fun MainView(
bottomBar = {
val screen = navigator.lastItem as? Screen
val style = screen?.bottomAppBarStyle ?: BottomAppBarStyle.Hidden
AnimatedVisibility(style != BottomAppBarStyle.Hidden) {
BottomAppBar(
style = style,
onMenuClick = { openBottomSheet = true },
)
if (style != BottomAppBarStyle.Hidden) {
BottomAppBar(style, onMenuClick = { openBottomSheet = true })
}
},
snackbarHost = { SnackbarHost(hostState = snackbarHostState) },
)

if (openBottomSheet) {
BottomSheetNavigation(
bottomSheetState = bottomSheetState,
onDismissRequest = { openBottomSheet = false },
)
BottomSheetNavigation(bottomSheetState, onDismissRequest = { openBottomSheet = false })
}

modal?.Content()
}
}
Expand Down

0 comments on commit 1d91266

Please sign in to comment.