summaryrefslogtreecommitdiff
path: root/app/src/main/java/sh/lajo/buddy/AppNavHost.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/sh/lajo/buddy/AppNavHost.kt')
-rw-r--r--app/src/main/java/sh/lajo/buddy/AppNavHost.kt96
1 files changed, 96 insertions, 0 deletions
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