feat(connector): remove gesture control on NavigationDrawer

This commit is contained in:
Anthony Berg 2024-04-30 12:45:35 +01:00
parent fe92d6a6e9
commit cd0f16828c

View File

@ -39,18 +39,18 @@ fun App() {
@Composable @Composable
fun AppScaffold() { fun AppScaffold() {
val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed) val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
val scope = rememberCoroutineScope() val drawerScope = rememberCoroutineScope()
TabNavigator(Projects) { TabNavigator(Projects) {
Scaffold( Scaffold(
topBar = { topBar = {
TopBar(drawerState, scope) TopBar(drawerState, drawerScope)
}, },
content = { innerPadding -> content = { innerPadding ->
Column( Column(
modifier = Modifier.padding(innerPadding) modifier = Modifier.padding(innerPadding)
) { ) {
NavigationDrawer(drawerState) { NavigationDrawer(drawerState = drawerState, drawerScope = drawerScope) {
KoinContext { KoinContext {
CurrentTab() CurrentTab()
} }
@ -111,26 +111,28 @@ fun TopBar(
@Composable @Composable
fun NavigationDrawer( fun NavigationDrawer(
drawerState: DrawerState, drawerState: DrawerState,
drawerScope: CoroutineScope,
content: @Composable() () -> Unit, content: @Composable() () -> Unit,
) { ) {
ModalNavigationDrawer( ModalNavigationDrawer(
drawerState = drawerState, drawerState = drawerState,
gesturesEnabled = false,
drawerContent = { drawerContent = {
ModalDrawerSheet { ModalDrawerSheet {
Column(modifier = Modifier.verticalScroll(rememberScrollState()) ) { Column(modifier = Modifier.verticalScroll(rememberScrollState()) ) {
Text("Project Name...", modifier = Modifier.padding(16.dp)) Text("Project Name...", modifier = Modifier.padding(16.dp))
TabNavigationItem(Projects) TabNavigationItem(tab = Projects, drawerState = drawerState, drawerScope = drawerScope)
HorizontalDivider() HorizontalDivider()
Text("Tester", modifier = Modifier.padding(16.dp)) Text("Tester", modifier = Modifier.padding(16.dp))
TabNavigationItem(Procedures) TabNavigationItem(tab = Procedures, drawerState = drawerState, drawerScope = drawerScope)
TabNavigationItem(SimulatorTest()) TabNavigationItem(tab = SimulatorTest(), drawerState = drawerState, drawerScope = drawerScope)
TabNavigationItem(TestResults()) TabNavigationItem(tab = TestResults(), drawerState = drawerState, drawerScope = drawerScope)
HorizontalDivider() HorizontalDivider()
Text("Application", modifier = Modifier.padding(16.dp)) Text("Application", modifier = Modifier.padding(16.dp))
TabNavigationItem(Settings()) TabNavigationItem(tab = Settings(), drawerState = drawerState, drawerScope = drawerScope)
TabNavigationItem(About()) TabNavigationItem(tab = About(), drawerState = drawerState, drawerScope = drawerScope)
} }
} }
} }
@ -143,13 +145,22 @@ fun NavigationDrawer(
* Creates button in NavigationDrawer * Creates button in NavigationDrawer
*/ */
@Composable @Composable
private fun TabNavigationItem(tab: Tab) { private fun TabNavigationItem(
tab: Tab,
drawerState: DrawerState,
drawerScope: CoroutineScope
) {
val tabNavigator = LocalTabNavigator.current val tabNavigator = LocalTabNavigator.current
NavigationDrawerItem( NavigationDrawerItem(
label = { Text(tab.options.title) }, label = { Text(tab.options.title) },
icon = { tab.options.icon?.let { Icon(it, null) } }, icon = { tab.options.icon?.let { Icon(it, null) } },
selected = tabNavigator.current == tab, selected = tabNavigator.current == tab,
onClick = { tabNavigator.current = tab }, onClick = {
drawerScope.launch {
tabNavigator.current = tab
drawerState.apply { close() }
}
},
) )
} }