Initial commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
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()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user