Files
CakeApp/app/src/main/java/com/example/cakeapp/navigation/CakeNavGraph.kt
PhongMacbook ab2856c82c Initial commit
2025-12-22 18:05:45 +07:00

49 lines
1.3 KiB
Kotlin

package com.example.cakeapp.navigation
import androidx.compose.runtime.Composable
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.example.cakeapp.screens.MenuScreen
import com.example.cakeapp.screens.OrderScreen
object Routes {
const val MENU = "menu"
const val ORDER = "order/{cakeId}"
fun orderRoute(cakeId: Int) = "order/$cakeId"
}
@Composable
fun CakeNavGraph(navController: NavHostController) {
NavHost(
navController = navController,
startDestination = Routes.MENU
) {
composable(Routes.MENU) {
MenuScreen(
onCakeSelected = { cakeId ->
navController.navigate(Routes.orderRoute(cakeId))
}
)
}
composable(
route = Routes.ORDER,
arguments = listOf(
navArgument("cakeId") { type = NavType.IntType }
)
) { backStackEntry ->
val cakeId = backStackEntry.arguments?.getInt("cakeId") ?: 1
OrderScreen(
cakeId = cakeId,
onBackToMenu = {
navController.popBackStack()
}
)
}
}
}