package com.longnh15.heimdall.navigation import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import com.longnh15.heimdall.ui.onboarding.OnboardingPage import com.longnh15.heimdall.ui.onboarding.OnboardingViewModel import com.longnh15.heimdall.ui.vault.VaultScreen import com.longnh15.heimdall.ui.vault.VaultViewModel import com.longnh15.heimdall.ui.vault.edit.AddEditVaultItemScreen import com.longnh15.heimdall.ui.vault.edit.AddEditVaultViewModel import org.koin.compose.viewmodel.koinViewModel @Composable fun HeimdallNavGraph( modifier: Modifier = Modifier, navController: NavHostController = rememberNavController(), startDestination: Screen = Screen.Onboarding, isAutofillServiceEnabled: () -> Boolean, onCompleteOnboarding: () -> Unit, ) { NavHost( navController = navController, startDestination = startDestination, modifier = modifier ) { composable { OnboardingPage( viewModel = koinViewModel(), isAutofillEnabled = isAutofillServiceEnabled, navigateToVault = { onCompleteOnboarding() navController.navigate(Screen.Vault) { popUpTo(Screen.Onboarding) { inclusive = true } } } ) } composable { VaultScreen( viewModel = koinViewModel(), navigateToAddScreen = { navController.navigate(Screen.NewVaultItem) } ) } composable { AddEditVaultItemScreen( viewModel = koinViewModel(), popScreen = { navController.navigateUp() } ) } } }