in Owl/app/src/main/java/com/example/owl/ui/OwlApp.kt [66:101]
fun OwlBottomBar(navController: NavController, tabs: Array<CourseTabs>) {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry?.destination?.route
?: CourseTabs.FEATURED.route
val routes = remember { CourseTabs.values().map { it.route } }
if (currentRoute in routes) {
BottomNavigation(
Modifier.navigationBarsHeight(additional = 56.dp)
) {
tabs.forEach { tab ->
BottomNavigationItem(
icon = { Icon(painterResource(tab.icon), contentDescription = null) },
label = { Text(stringResource(tab.title).uppercase(Locale.getDefault())) },
selected = currentRoute == tab.route,
onClick = {
if (tab.route != currentRoute) {
navController.navigate(tab.route) {
popUpTo(navController.graph.startDestinationId) {
saveState = true
}
launchSingleTop = true
restoreState = true
}
}
},
alwaysShowLabel = false,
selectedContentColor = MaterialTheme.colors.secondary,
unselectedContentColor = LocalContentColor.current,
modifier = Modifier.navigationBarsPadding()
)
}
}
}
}