feat: update navigation logic to manage section overrides in WebTabletNavigation
This commit is contained in:
@@ -157,7 +157,7 @@ private fun WebTabletNavigation(
|
|||||||
navigationState: NavigationUiState,
|
navigationState: NavigationUiState,
|
||||||
) {
|
) {
|
||||||
val sectionOverride = androidx.compose.runtime.remember { androidx.compose.runtime.mutableStateOf<MenuSection?>(null) }
|
val sectionOverride = androidx.compose.runtime.remember { androidx.compose.runtime.mutableStateOf<MenuSection?>(null) }
|
||||||
val section = menuSection(selectedRoute) ?: sectionOverride.value
|
val section = sectionOverride.value ?: menuSection(selectedRoute)
|
||||||
val subScroll = rememberScrollState()
|
val subScroll = rememberScrollState()
|
||||||
|
|
||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
@@ -168,25 +168,54 @@ private fun WebTabletNavigation(
|
|||||||
horizontalArrangement = Arrangement.spacedBy(4.dp),
|
horizontalArrangement = Arrangement.spacedBy(4.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
MainLink("Start", selectedRoute == Destinations.Home.route, onClick = { onNavigate(Destinations.Home.route) })
|
MainLink("Start", selectedRoute == Destinations.Home.route, onClick = {
|
||||||
MainLink("Verein", section == MenuSection.VEREIN, onClick = { onNavigate(Destinations.VereinAbout.route) })
|
sectionOverride.value = null
|
||||||
MainLink("Mannschaften", section == MenuSection.MANNSCHAFTEN, onClick = { onNavigate(Destinations.Mannschaften.route) })
|
onNavigate(Destinations.Home.route)
|
||||||
MainLink("Training", section == MenuSection.TRAINING, onClick = { onNavigate(Destinations.Training.route) })
|
})
|
||||||
MainLink("Termine", selectedRoute == Destinations.Termine.route, onClick = { onNavigate(Destinations.Termine.route) })
|
MainLink("Verein", section == MenuSection.VEREIN, onClick = {
|
||||||
|
sectionOverride.value = MenuSection.VEREIN
|
||||||
|
onNavigate(Destinations.VereinAbout.route)
|
||||||
|
})
|
||||||
|
MainLink("Mannschaften", section == MenuSection.MANNSCHAFTEN, onClick = {
|
||||||
|
sectionOverride.value = MenuSection.MANNSCHAFTEN
|
||||||
|
onNavigate(Destinations.Mannschaften.route)
|
||||||
|
})
|
||||||
|
MainLink("Training", section == MenuSection.TRAINING, onClick = {
|
||||||
|
sectionOverride.value = MenuSection.TRAINING
|
||||||
|
onNavigate(Destinations.Training.route)
|
||||||
|
})
|
||||||
|
MainLink("Termine", selectedRoute == Destinations.Termine.route, onClick = {
|
||||||
|
sectionOverride.value = null
|
||||||
|
onNavigate(Destinations.Termine.route)
|
||||||
|
})
|
||||||
if (navigationState.showGallery) {
|
if (navigationState.showGallery) {
|
||||||
MainLink("Galerie", selectedRoute == Destinations.Gallery.route, onClick = { onNavigate(Destinations.Gallery.route) })
|
MainLink("Galerie", selectedRoute == Destinations.Gallery.route, onClick = {
|
||||||
|
sectionOverride.value = MenuSection.VEREIN
|
||||||
|
onNavigate(Destinations.Gallery.route)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
MainLink("Newsletter", section == MenuSection.NEWSLETTER, onClick = { onNavigate(Destinations.NewsletterSubscribe.route) })
|
MainLink("Newsletter", section == MenuSection.NEWSLETTER, onClick = {
|
||||||
|
sectionOverride.value = MenuSection.NEWSLETTER
|
||||||
|
onNavigate(Destinations.NewsletterSubscribe.route)
|
||||||
|
})
|
||||||
if (navigationState.loggedIn) {
|
if (navigationState.loggedIn) {
|
||||||
MainLink("Intern", section == MenuSection.INTERN, onClick = { sectionOverride.value = MenuSection.INTERN })
|
MainLink("Intern", section == MenuSection.INTERN, onClick = {
|
||||||
|
sectionOverride.value = MenuSection.INTERN
|
||||||
|
})
|
||||||
}
|
}
|
||||||
MainLink("Kontakt", selectedRoute == Destinations.Contact.route, primary = true, onClick = { onNavigate(Destinations.Contact.route) })
|
MainLink("Kontakt", selectedRoute == Destinations.Contact.route, primary = true, onClick = {
|
||||||
|
sectionOverride.value = null
|
||||||
|
onNavigate(Destinations.Contact.route)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
Spacer(Modifier.width(12.dp))
|
Spacer(Modifier.width(12.dp))
|
||||||
if (navigationState.loggedIn) {
|
if (navigationState.loggedIn) {
|
||||||
TextButton(onClick = { sectionOverride.value = MenuSection.CMS }) { Text("CMS", color = Color.White) }
|
TextButton(onClick = { sectionOverride.value = MenuSection.CMS }) { Text("CMS", color = Color.White) }
|
||||||
} else {
|
} else {
|
||||||
TextButton(onClick = { onNavigate(Destinations.Login.route) }) { Text("Login", color = Color.White) }
|
TextButton(onClick = {
|
||||||
|
sectionOverride.value = null
|
||||||
|
onNavigate(Destinations.Login.route)
|
||||||
|
}) { Text("Login", color = Color.White) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user