less hardcoding
This commit is contained in:
parent
e73cc798f0
commit
05860345b6
2 changed files with 16 additions and 12 deletions
|
@ -12,12 +12,14 @@ import androidx.compose.material.icons.outlined.DateRange
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import be.ugent.sel.studeez.navigation.StudeezDestinations.HOME_SCREEN
|
||||
import be.ugent.sel.studeez.navigation.StudeezDestinations.PROFILE_SCREEN
|
||||
import be.ugent.sel.studeez.resources
|
||||
import be.ugent.sel.studeez.ui.theme.StudeezTheme
|
||||
import be.ugent.sel.studeez.R.string as AppText
|
||||
|
||||
data class NavigationBarActions(
|
||||
val selectedTab: (Int) -> Boolean,
|
||||
val selectedTab: (String) -> Boolean,
|
||||
val onHomeClick: () -> Unit,
|
||||
val onTasksClick: () -> Unit,
|
||||
val onSessionsClick: () -> Unit,
|
||||
|
@ -56,7 +58,7 @@ fun NavigationBar(
|
|||
BottomNavigationItem(
|
||||
icon = { Icon(imageVector = Icons.Default.List, resources().getString(AppText.home)) },
|
||||
label = { Text(text = resources().getString(AppText.home)) },
|
||||
selected = navigationBarActions.selectedTab(0),
|
||||
selected = navigationBarActions.selectedTab(HOME_SCREEN),
|
||||
onClick = navigationBarActions.onHomeClick
|
||||
)
|
||||
|
||||
|
@ -67,7 +69,8 @@ fun NavigationBar(
|
|||
)
|
||||
},
|
||||
label = { Text(text = resources().getString(AppText.tasks)) },
|
||||
selected = navigationBarActions.selectedTab(1),
|
||||
// TODO selected = navigationBarActions.selectedTab(TASKS_SCREEN),
|
||||
selected = false,
|
||||
onClick = navigationBarActions.onTasksClick
|
||||
)
|
||||
|
||||
|
@ -81,7 +84,8 @@ fun NavigationBar(
|
|||
)
|
||||
},
|
||||
label = { Text(text = resources().getString(AppText.sessions)) },
|
||||
selected = navigationBarActions.selectedTab(2),
|
||||
// TODO selected = navigationBarActions.selectedTab(SESSIONS_SCREEN),
|
||||
selected = false,
|
||||
onClick = navigationBarActions.onSessionsClick
|
||||
)
|
||||
|
||||
|
@ -92,7 +96,7 @@ fun NavigationBar(
|
|||
)
|
||||
},
|
||||
label = { Text(text = resources().getString(AppText.profile)) },
|
||||
selected = navigationBarActions.selectedTab(3),
|
||||
selected = navigationBarActions.selectedTab(PROFILE_SCREEN),
|
||||
onClick = navigationBarActions.onProfileClick
|
||||
)
|
||||
|
||||
|
|
|
@ -16,32 +16,32 @@ class NavigationBarViewModel @Inject constructor(
|
|||
logService: LogService
|
||||
) : StudeezViewModel(logService) {
|
||||
|
||||
fun isSelected(index: Int): Boolean {
|
||||
return index == selectedTab.selectedTab
|
||||
fun isSelected(screen: String): Boolean {
|
||||
return screen == selectedTab.selectedTab
|
||||
}
|
||||
|
||||
fun onHomeClick(open: (String) -> Unit) {
|
||||
selectedTab.selectedTab = 0
|
||||
selectedTab.selectedTab = HOME_SCREEN
|
||||
open(HOME_SCREEN)
|
||||
}
|
||||
|
||||
fun onTasksClick(open: (String) -> Unit) {
|
||||
// TODO
|
||||
selectedTab.selectedTab = 1
|
||||
// selectedTab.selectedTab = TASKS_SCREEN
|
||||
}
|
||||
|
||||
fun onSessionsClick(open: (String) -> Unit) {
|
||||
// TODO
|
||||
selectedTab.selectedTab = 2
|
||||
// selectedTab.selectedTab = SESSIONS_SCREEN
|
||||
}
|
||||
|
||||
fun onProfileClick(open: (String) -> Unit) {
|
||||
selectedTab.selectedTab = 3
|
||||
selectedTab.selectedTab = PROFILE_SCREEN
|
||||
open(PROFILE_SCREEN)
|
||||
}
|
||||
}
|
||||
|
||||
@Singleton
|
||||
class SelectedTabState @Inject constructor() {
|
||||
var selectedTab: Int = 0
|
||||
var selectedTab: String = HOME_SCREEN
|
||||
}
|
Reference in a new issue