@@ -9,9 +9,7 @@ import androidx.compose.animation.core.tween
9
9
import androidx.compose.animation.fadeIn
10
10
import androidx.compose.animation.fadeOut
11
11
import androidx.compose.foundation.layout.padding
12
- import androidx.compose.material.MaterialTheme
13
- import androidx.compose.material.Scaffold
14
- import androidx.compose.material.Surface
12
+ import androidx.compose.material.*
15
13
import androidx.compose.runtime.*
16
14
import androidx.compose.ui.Modifier
17
15
import androidx.core.view.WindowCompat
@@ -43,6 +41,8 @@ import com.funkymuse.style.theme.AuroraTheme
43
41
import com.google.accompanist.insets.ProvideWindowInsets
44
42
import com.google.accompanist.navigation.animation.AnimatedNavHost
45
43
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
44
+ import com.google.accompanist.navigation.material.BottomSheetNavigator
45
+ import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi
46
46
import com.google.accompanist.navigation.material.ModalBottomSheetLayout
47
47
import com.google.accompanist.navigation.material.rememberBottomSheetNavigator
48
48
import dagger.hilt.android.AndroidEntryPoint
@@ -89,22 +89,31 @@ class MainActivity : ComponentActivity(), AssistedHiltInjectables {
89
89
90
90
@OptIn(
91
91
ExperimentalAnimationApi ::class ,
92
- com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi ::class
92
+ ExperimentalMaterialNavigationApi ::class ,
93
+ ExperimentalMaterialApi ::class
93
94
)
94
95
@Composable
95
96
fun AuroraScaffold (auroraNavigator : AuroraNavigator ) {
96
- val bottomSheetNavigator = rememberBottomSheetNavigator()
97
+ val sheetState = rememberModalBottomSheetState(ModalBottomSheetValue .Hidden , SwipeableDefaults .AnimationSpec )
98
+ val bottomSheetNavigator = rememberBottomSheetNavigatorFix(sheetState)
97
99
val navController = rememberAnimatedNavController()
98
100
navController.navigatorProvider + = bottomSheetNavigator
99
101
100
102
LaunchedEffect (navController) {
101
103
auroraNavigator.destinations.collect {
102
104
when (val event = it) {
103
- is NavigatorEvent .NavigateUp -> navController.navigateUp()
105
+ is NavigatorEvent .NavigateUp -> {
106
+ sheetState.hide()
107
+ navController.navigateUp()
108
+ }
104
109
is NavigatorEvent .Directions -> navController.navigate(
105
110
event.destination,
106
111
event.builder
107
112
)
113
+ NavigatorEvent .PopBackStack -> {
114
+ sheetState.hide()
115
+ navController.popBackStack()
116
+ }
108
117
}
109
118
}
110
119
}
@@ -174,3 +183,15 @@ fun ResetUserDonationsInfo() {
174
183
}
175
184
176
185
186
+ @OptIn(
187
+ ExperimentalMaterialNavigationApi ::class ,
188
+ ExperimentalMaterialApi ::class
189
+ )
190
+ @Composable
191
+ fun rememberBottomSheetNavigatorFix (
192
+ sheetState : ModalBottomSheetState
193
+ ): BottomSheetNavigator {
194
+ return remember(sheetState) {
195
+ BottomSheetNavigator (sheetState = sheetState)
196
+ }
197
+ }
0 commit comments