Skip to content

Instantly share code, notes, and snippets.

@Shvet
Last active June 30, 2023 13:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Shvet/91b631829e94bd2f309a6ee8856f97bc to your computer and use it in GitHub Desktop.
Save Shvet/91b631829e94bd2f309a6ee8856f97bc to your computer and use it in GitHub Desktop.
Compose Nav Host Wrapper Class
package com.shvet.composelogin.activity
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import com.shvet.composelogin.DashboardUI
import com.shvet.composelogin.login.LoginUi
import com.shvet.composelogin.login.viewModel.LoginViewModel
@Composable
fun ComposeNavHost(
modifier: Modifier,
isLoggedIn: Boolean,
userName: String,
userPassword: String,
navController: NavHostController = rememberNavController()
) {
NavHost(
modifier = modifier,
navController = navController,
startDestination = "Dashboard"
) {
composable("Dashboard") {
DashboardUI(
modifier = modifier,
isLoggedIn = isLoggedIn,
userName = userName,
userPassword = userPassword
) {
navController.navigate("Login")
}
}
composable("Login") {
val viewModel: LoginViewModel = hiltViewModel()
LoginUi(modifier = modifier,
isLoggedIn = isLoggedIn,
viewModel = viewModel,
goToDashBoard = {
navController.navigate("Dashboard") {
popUpTo(navController.graph.findStartDestination().id) {
inclusive = true
}
launchSingleTop = true
}
}
)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment