אליהו הדס
08/08/2024, 3:05 AMval isFirstTime by vm.isFirstTime.collectAsStateWithLifecycle()NavHost(navController = navController,startDestination = if (isFirstTime) NavGraph.OnBoarding else NavGraph.Home,Meet
08/08/2024, 3:48 AMאליהו הדס
08/08/2024, 4:08 AMChrimaeon
08/08/2024, 7:21 AMStylianos Gakis
08/08/2024, 7:38 AMאליהו הדס
08/08/2024, 5:39 PMsealed class NavState {object Loading: NavState()object FirstTime: NavState()object NotFirstTime: NavState()}@Composablefun composeNavigationApp(viewModel: NavViewModel) : NavGraph {val viewState by viewModel.navState.collectAsState()return when(viewState) {NavState.FirstTime -> NavGraph.OnBoardingNavState.Loading -> NavGraph.LoadingNavState.NotFirstTime -> NavGraph.Home}}אליהו הדס
08/08/2024, 5:40 PMclass NavViewModel(repository: PreferencesRepository) : ViewModel() {val isFirstTime: Flow<Boolean> = repository.isFirstTimeval navState = isFirstTime.map { isFirstTime ->if (isFirstTime) {NavState.FirstTime} else {NavState.NotFirstTime}}.stateIn(viewModelScope, SharingStarted.Lazily, NavState.Loading)}אליהו הדס
08/08/2024, 5:41 PMval navViewModel : NavViewModel = koinViewModel()NavHost(navController = navController,startDestination = composeNavigationApp(viewModel = navViewModel),Stylianos Gakis
08/08/2024, 6:21 PMאליהו הדס
08/08/2024, 6:23 PMStylianos Gakis
08/08/2024, 6:24 PMStylianos Gakis
08/08/2024, 6:24 PMאליהו הדס
08/08/2024, 6:33 PM@Composablefun composeNavigationApp(navController: NavController,viewModel: NavViewModel) {val viewState by viewModel.navState.collectAsState()LaunchedEffect(viewState) {when (viewState) {is NavState.FirstTime -> navController.navigate(NavGraph.OnBoarding)is NavState.NotFirstTime -> navController.navigate(NavGraph.Home) {popUpTo(NavGraph.OnBoarding) { inclusive = true }}}}}אליהו הדס
08/08/2024, 6:34 PMאליהו הדס
08/08/2024, 6:35 PMNavHost( navController = navController, startDestination = NavGraph.HomeStylianos Gakis
08/08/2024, 6:37 PM