From adb6a4fd9ec3a23c04d5e4c2ce799448237915c4 Mon Sep 17 00:00:00 2001 From: JustZvan Date: Fri, 6 Feb 2026 13:38:36 +0100 Subject: feat: initial commit --- app/src/main/java/sh/lajo/buddy/AppNavHost.kt | 96 +++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 app/src/main/java/sh/lajo/buddy/AppNavHost.kt (limited to 'app/src/main/java/sh/lajo/buddy/AppNavHost.kt') diff --git a/app/src/main/java/sh/lajo/buddy/AppNavHost.kt b/app/src/main/java/sh/lajo/buddy/AppNavHost.kt new file mode 100644 index 0000000..d79195a --- /dev/null +++ b/app/src/main/java/sh/lajo/buddy/AppNavHost.kt @@ -0,0 +1,96 @@ +package sh.lajo.buddy + +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable + +private const val ROUTE_ONBOARDING_STEP1 = "onboarding/step1" +private const val ROUTE_ONBOARDING_STEP2 = "onboarding/step2" +private const val ROUTE_ONBOARDING_STEP3 = "onboarding/step3" +private const val ROUTE_ONBOARDING_STEP4 = "onboarding/step4" +private const val ROUTE_ONBOARDING_STEP5 = "onboarding/step5" +private const val ROUTE_ONBOARDING_STEP6 = "onboarding/step6" +private const val ROUTE_ONBOARDING_STEP7 = "onboarding/step7" +private const val ROUTE_MAIN = "main" +private const val ROUTE_HOME = "home" +private const val ROUTE_SETTINGS = "settings" + +@Composable +fun AppNavHost( + navController: NavHostController, + startDestination: String, + modifier: Modifier = Modifier, +) { + NavHost( + navController = navController, + startDestination = startDestination, + modifier = modifier, + ) { + composable(ROUTE_ONBOARDING_STEP1) { + OnboardingStep1Screen( + onNext = { navController.navigate(ROUTE_ONBOARDING_STEP2) }, + ) + } + + composable(ROUTE_ONBOARDING_STEP2) { + OnboardingStep2Screen( + onBack = { navController.popBackStack() }, + onNext = { navController.navigate(ROUTE_ONBOARDING_STEP3) }, + ) + } + + composable(ROUTE_ONBOARDING_STEP3) { + OnboardingStep3Screen( + onBack = { navController.popBackStack() }, + onNext = { navController.navigate(ROUTE_ONBOARDING_STEP4) } + ) + } + + composable(ROUTE_ONBOARDING_STEP4) { + OnboardingStep4Screen( + onBack = { navController.popBackStack() }, + onNext = { navController.navigate(ROUTE_ONBOARDING_STEP5) } + ) + } + + composable(ROUTE_ONBOARDING_STEP5) { + OnboardingStep5Screen( + onBack = { navController.popBackStack() }, + onNext = { navController.navigate(ROUTE_ONBOARDING_STEP6) } + ) + } + + composable(ROUTE_ONBOARDING_STEP6) { + OnboardingStep6Screen( + onBack = { navController.popBackStack() }, + onNext = { navController.navigate(ROUTE_ONBOARDING_STEP7) }, + ) + } + + composable(ROUTE_ONBOARDING_STEP7) { + OnboardingStep7Screen( + onBack = { navController.popBackStack() }, + onFinish = { + navController.navigate(ROUTE_HOME) { + popUpTo(ROUTE_ONBOARDING_STEP1) { inclusive = true } + launchSingleTop = true + } + } + ) + } + + composable(ROUTE_MAIN) { + MainScreen() + } + + composable(ROUTE_HOME) { + HomeScreen() + } + + composable(ROUTE_SETTINGS) { + SettingsScreen() + } + } +} \ No newline at end of file -- cgit v1.2.3