Fixes visibility of the bottom and top bar when the user comes back to the app.

This commit is contained in:
Vitor Pamplona 2023-10-06 16:37:55 -04:00
parent 3c4cf03684
commit 275051ed30

View File

@ -23,7 +23,6 @@ import androidx.compose.material3.rememberModalBottomSheetState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.State
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.derivedStateOf
@ -265,7 +264,10 @@ fun MainScreen(
}
}
WatchNavStateToUpdateBarVisibility(navState, bottomBarOffsetHeightPx)
WatchNavStateToUpdateBarVisibility(navState) {
bottomBarOffsetHeightPx.value = 0f
shouldShow.value = true
}
ModalNavigationDrawer(
drawerState = drawerState,
@ -393,16 +395,16 @@ private fun DisplayErrorMessages(accountViewModel: AccountViewModel) {
}
@Composable
fun WatchNavStateToUpdateBarVisibility(navState: State<NavBackStackEntry?>, bottomBarOffsetHeightPx: MutableState<Float>) {
fun WatchNavStateToUpdateBarVisibility(navState: State<NavBackStackEntry?>, onReset: () -> Unit) {
LaunchedEffect(key1 = navState.value) {
bottomBarOffsetHeightPx.value = 0f
onReset()
}
val lifeCycleOwner = LocalLifecycleOwner.current
DisposableEffect(lifeCycleOwner) {
val observer = LifecycleEventObserver { _, event ->
if (event == Lifecycle.Event.ON_RESUME) {
bottomBarOffsetHeightPx.value = 0f
onReset()
}
}