wrap homescreen in route
This commit is contained in:
		
							parent
							
								
									05c37b4168
								
							
						
					
					
						commit
						8fc4ac8cf1
					
				
					 4 changed files with 55 additions and 30 deletions
				
			
		| 
						 | 
				
			
			@ -31,6 +31,20 @@ data class DrawerActions(
 | 
			
		|||
    val onAboutClick: () -> Unit,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
fun getDrawerActions(
 | 
			
		||||
    drawerViewModel: DrawerViewModel,
 | 
			
		||||
    open: (String) -> Unit,
 | 
			
		||||
    openAndPopUp: (String, String) -> Unit,
 | 
			
		||||
): DrawerActions {
 | 
			
		||||
    return DrawerActions(
 | 
			
		||||
        onHomeButtonClick = { drawerViewModel.onHomeButtonClick(open) },
 | 
			
		||||
        onTimersClick = { drawerViewModel.onTimersClick(open) },
 | 
			
		||||
        onSettingsClick = { drawerViewModel.onSettingsClick(open) },
 | 
			
		||||
        onLogoutClick = { drawerViewModel.onLogoutClick(openAndPopUp) },
 | 
			
		||||
        onAboutClick = { drawerViewModel.onAboutClick(open) },
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun Drawer(
 | 
			
		||||
    drawerActions: DrawerActions,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,8 +15,10 @@ import be.ugent.sel.studeez.common.ext.basicButton
 | 
			
		|||
import be.ugent.sel.studeez.resources
 | 
			
		||||
import be.ugent.sel.studeez.screens.drawer.DrawerActions
 | 
			
		||||
import be.ugent.sel.studeez.screens.drawer.DrawerViewModel
 | 
			
		||||
import be.ugent.sel.studeez.screens.drawer.getDrawerActions
 | 
			
		||||
import be.ugent.sel.studeez.screens.navbar.NavigationBarActions
 | 
			
		||||
import be.ugent.sel.studeez.screens.navbar.NavigationBarViewModel
 | 
			
		||||
import be.ugent.sel.studeez.screens.navbar.getNavigationBarActions
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun HomeRoute(
 | 
			
		||||
| 
						 | 
				
			
			@ -25,33 +27,19 @@ fun HomeRoute(
 | 
			
		|||
    viewModel: HomeViewModel,
 | 
			
		||||
) {
 | 
			
		||||
    HomeScreen(
 | 
			
		||||
        open = open,
 | 
			
		||||
        openAndPopUp = openAndPopUp,
 | 
			
		||||
        onStartSessionClick = { viewModel.onStartSessionClick(open) }
 | 
			
		||||
        onStartSessionClick = { viewModel.onStartSessionClick(open) },
 | 
			
		||||
        drawerActions = getDrawerActions(hiltViewModel(), open, openAndPopUp),
 | 
			
		||||
        navigationBarActions = getNavigationBarActions(hiltViewModel(), open),
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun HomeScreen(
 | 
			
		||||
    open: (String) -> Unit,
 | 
			
		||||
    openAndPopUp: (String, String) -> Unit,
 | 
			
		||||
    onStartSessionClick: () -> Unit,
 | 
			
		||||
    drawerActions: DrawerActions,
 | 
			
		||||
    navigationBarActions: NavigationBarActions,
 | 
			
		||||
) {
 | 
			
		||||
    val drawerViewModel: DrawerViewModel = hiltViewModel()
 | 
			
		||||
    val drawerActions = DrawerActions(
 | 
			
		||||
        onHomeButtonClick = { drawerViewModel.onHomeButtonClick(open) },
 | 
			
		||||
        onTimersClick = { drawerViewModel.onTimersClick(open) },
 | 
			
		||||
        onSettingsClick = { drawerViewModel.onSettingsClick(open) },
 | 
			
		||||
        onLogoutClick = { drawerViewModel.onLogoutClick(openAndPopUp) },
 | 
			
		||||
        onAboutClick = { drawerViewModel.onAboutClick(open) },
 | 
			
		||||
    )
 | 
			
		||||
    val navigationBarViewModel: NavigationBarViewModel = hiltViewModel()
 | 
			
		||||
    val navigationBarActions = NavigationBarActions(
 | 
			
		||||
        onHomeClick = { navigationBarViewModel.onHomeClick(open) },
 | 
			
		||||
        onTasksClick = { navigationBarViewModel.onTasksClick(open) },
 | 
			
		||||
        onSessionsClick = { navigationBarViewModel.onSessionsClick(open) },
 | 
			
		||||
        onProfileClick = { navigationBarViewModel.onProfileClick(open) },
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    PrimaryScreenTemplate(
 | 
			
		||||
        title = resources().getString(R.string.home),
 | 
			
		||||
        drawerActions = drawerActions,
 | 
			
		||||
| 
						 | 
				
			
			@ -77,5 +65,9 @@ fun FriendsAction() {
 | 
			
		|||
@Preview
 | 
			
		||||
@Composable
 | 
			
		||||
fun HomeScreenPreview() {
 | 
			
		||||
    HomeScreen(open = {}, openAndPopUp = { _, _ -> run {} }, onStartSessionClick = {})
 | 
			
		||||
    HomeScreen(
 | 
			
		||||
        onStartSessionClick = {},
 | 
			
		||||
        drawerActions = DrawerActions({}, {}, {}, {}, {}),
 | 
			
		||||
        navigationBarActions = NavigationBarActions({}, {}, {}, {})
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,6 +23,18 @@ data class NavigationBarActions(
 | 
			
		|||
    val onProfileClick: () -> Unit,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
fun getNavigationBarActions(
 | 
			
		||||
    navigationBarViewModel: NavigationBarViewModel,
 | 
			
		||||
    open: (String) -> Unit,
 | 
			
		||||
): NavigationBarActions {
 | 
			
		||||
    return NavigationBarActions(
 | 
			
		||||
        onHomeClick = { navigationBarViewModel.onHomeClick(open) },
 | 
			
		||||
        onTasksClick = { navigationBarViewModel.onTasksClick(open) },
 | 
			
		||||
        onSessionsClick = { navigationBarViewModel.onSessionsClick(open) },
 | 
			
		||||
        onProfileClick = { navigationBarViewModel.onProfileClick(open) },
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun NavigationBar(
 | 
			
		||||
    navigationBarActions: NavigationBarActions,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue