#52 Move drawer to toolbar

This commit is contained in:
Tibo De Peuter 2023-04-12 15:08:26 +02:00
parent 85e1b55507
commit 307f9e0d70
7 changed files with 88 additions and 51 deletions

View file

@ -16,7 +16,7 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import be.ugent.sel.studeez.common.composable.Drawer
import be.ugent.sel.studeez.screens.drawer.Drawer
import be.ugent.sel.studeez.common.snackbar.SnackbarManager
import be.ugent.sel.studeez.navigation.StudeezDestinations
import be.ugent.sel.studeez.screens.home.HomeScreen
@ -32,29 +32,24 @@ fun StudeezApp() {
Surface(color = MaterialTheme.colors.background) {
val appState = rememberAppState()
ModalDrawer(
drawerContent = { Drawer({ route, popUp -> appState.navigateAndPopUp(route, popUp) }) },
drawerState = appState.drawerState
) {
Scaffold(
snackbarHost = {
SnackbarHost(
hostState = it,
modifier = Modifier.padding(8.dp),
snackbar = { snackbarData ->
Snackbar(snackbarData, contentColor = MaterialTheme.colors.onPrimary)
}
)
},
scaffoldState = appState.scaffoldState
) { innerPaddingModifier ->
NavHost(
navController = appState.navController,
startDestination = StudeezDestinations.SPLASH_SCREEN,
modifier = Modifier.padding(innerPaddingModifier)
) {
studeezGraph(appState)
}
Scaffold(
snackbarHost = {
SnackbarHost(
hostState = it,
modifier = Modifier.padding(8.dp),
snackbar = { snackbarData ->
Snackbar(snackbarData, contentColor = MaterialTheme.colors.onPrimary)
}
)
},
scaffoldState = appState.scaffoldState
) { innerPaddingModifier ->
NavHost(
navController = appState.navController,
startDestination = StudeezDestinations.SPLASH_SCREEN,
modifier = Modifier.padding(innerPaddingModifier)
) {
studeezGraph(appState)
}
}
}
@ -64,14 +59,13 @@ fun StudeezApp() {
@Composable
fun rememberAppState(
scaffoldState: ScaffoldState = rememberScaffoldState(),
drawerState: DrawerState = rememberDrawerState(initialValue = DrawerValue.Closed),
navController: NavHostController = rememberNavController(),
snackbarManager: SnackbarManager = SnackbarManager,
resources: Resources = resources(),
coroutineScope: CoroutineScope = rememberCoroutineScope()
) =
remember(scaffoldState, navController, snackbarManager, resources, coroutineScope) {
StudeezAppstate(scaffoldState, drawerState, navController, snackbarManager, resources, coroutineScope)
StudeezAppstate(scaffoldState, navController, snackbarManager, resources, coroutineScope)
}
@Composable
@ -97,8 +91,7 @@ fun NavGraphBuilder.studeezGraph(appState: StudeezAppstate) {
composable(StudeezDestinations.HOME_SCREEN) {
HomeScreen(
openAndPopUp = { route, popUp -> appState.navigateAndPopUp(route, popUp) },
openDrawer = { appState.openDrawer() }
openAndPopUp = { route, popUp -> appState.navigateAndPopUp(route, popUp) }
)
}
}