feat(connector): allow for composable objects to coexist with nav drawer

This commit is contained in:
Anthony 2024-04-01 04:54:05 +02:00
parent 8f8ae61325
commit 32c9be2eee

View File

@ -32,7 +32,7 @@ fun App() {
AppTheme {
var showContent by remember { mutableStateOf(false) }
Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
AppScaffold()
AppScaffold {
Button(onClick = { showContent = !showContent }) {
Text("Click me!")
}
@ -46,9 +46,10 @@ fun App() {
}
}
}
}
@Composable
fun AppScaffold() {
fun AppScaffold(content: @Composable() () -> Unit) {
val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
val scope = rememberCoroutineScope()
@ -58,14 +59,19 @@ fun AppScaffold() {
},
) { innerPadding ->
Column(
modifier = Modifier.padding(innerPadding),
modifier = Modifier.padding(innerPadding)
) {
NavigationDrawer(drawerState) {
Column(
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
NavigationDrawer(drawerState)
content()
Text("Test")
}
}
}
}
}
/**
* Component for the bar on top of the screen
@ -112,7 +118,10 @@ fun TopBar(
*/
@OptIn(ExperimentalResourceApi::class)
@Composable
fun NavigationDrawer(drawerState: DrawerState) {
fun NavigationDrawer(
drawerState: DrawerState,
content: @Composable() () -> Unit,
) {
ModalNavigationDrawer(
drawerState = drawerState,
drawerContent = {
@ -164,5 +173,7 @@ fun NavigationDrawer(drawerState: DrawerState) {
}
}
}
) {}
) {
content()
}
}