Skip to content

Commit

Permalink
Add navigation events to the Shopping Cart screen
Browse files Browse the repository at this point in the history
  • Loading branch information
etonotieno committed Sep 29, 2023
1 parent 569cda6 commit 61b7b88
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ import io.devbits.gocart.authentication.navigation.navigateToUpdatePassword
import io.devbits.gocart.authentication.navigation.phoneVerificationScreen
import io.devbits.gocart.authentication.navigation.signUpScreen
import io.devbits.gocart.authentication.navigation.updatePasswordScreen
import io.devbits.gocart.cart.navigation.cartScreen
import io.devbits.gocart.cart.navigation.navigateToCart
import io.devbits.gocart.favorites.navigation.favoritesScreen
import io.devbits.gocart.homefeed.navigation.homeScreen
import io.devbits.gocart.homefeed.navigation.navigateToHome
Expand Down Expand Up @@ -191,13 +193,19 @@ fun GoCartNavHost(
navigateToProduct = { productId ->
navController.navigateToProductDetails(productId)
},
navigateToCart = navController::navigateToCart,
)

productDetailsScreen(
onBack = navController::popBackStack,
onClickProduct = { productId ->
navController.navigateToProductDetails(productId)
},
navigateToCart = navController::navigateToCart,
)

cartScreen(
onBack = navController::popBackStack,
)
}
}
2 changes: 1 addition & 1 deletion app/src/main/java/io/devbits/gocart/ui/GoCartApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ fun GoCartApp(
}
},
onSearch = {},
onCheckout = {},
onCheckout = appState::navigateToCart,
)
}
},
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/io/devbits/gocart/ui/GoCartAppState.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import io.devbit.gocart.orders.navigation.ordersRoute
import io.devbits.gocart.address.navigation.navigateToAddress
import io.devbits.gocart.authentication.navigation.authenticationRoute
import io.devbits.gocart.authentication.navigation.navigateToAuth
import io.devbits.gocart.cart.navigation.navigateToCart
import io.devbits.gocart.designsystem.model.DestinationRoutes
import io.devbits.gocart.designsystem.model.NavDrawerItem
import io.devbits.gocart.favorites.navigation.favoritesRoute
Expand Down Expand Up @@ -104,6 +105,8 @@ class GoCartAppState(
restoreState = true
}
}

fun navigateToCart() = navController.navigateToCart()
}

@Composable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@ fun NavController.navigateToProductCategory(category: String, navOptions: NavOpt
fun NavGraphBuilder.productCategoryScreen(
onBack: () -> Unit,
navigateToProduct: (Int) -> Unit,
navigateToCart: () -> Unit,
) {
composable(route = "$productCategoryRoute/{$categoryArg}") {
ProductCategoryRoute(
onBack = onBack,
navigateToProduct = navigateToProduct,
navigateToCart = navigateToCart,
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ import kotlinx.coroutines.launch
fun ProductCategoryRoute(
onBack: () -> Unit,
navigateToProduct: (Int) -> Unit,
navigateToCart: () -> Unit,
modifier: Modifier = Modifier,
viewModel: ProductCategoryViewModel = hiltViewModel(),
) {
Expand All @@ -71,8 +72,9 @@ fun ProductCategoryRoute(
products = products,
onBookmark = {},
onAddToCart = {},
navigateToProduct = navigateToProduct,
onBack = onBack,
navigateToProduct = navigateToProduct,
navigateToCart = navigateToCart,
modifier = modifier,
)
}
Expand All @@ -86,6 +88,7 @@ fun ProductCategoryScreen(
onAddToCart: () -> Unit,
onBack: () -> Unit,
navigateToProduct: (Int) -> Unit,
navigateToCart: () -> Unit,
modifier: Modifier = Modifier,
) {
var showBottomSheet by remember { mutableStateOf(false) }
Expand All @@ -112,7 +115,7 @@ fun ProductCategoryScreen(
)
}

IconButton(onClick = {}) {
IconButton(onClick = navigateToCart) {
Icon(
imageVector = Icons.Outlined.ShoppingCart,
contentDescription = null,
Expand Down Expand Up @@ -205,8 +208,9 @@ private fun ProductCategoryScreenPreview() {
products = sampleProducts,
onBookmark = {},
onAddToCart = {},
navigateToProduct = {},
onBack = {},
navigateToProduct = {},
navigateToCart = {},
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ fun NavController.navigateToProductDetails(productId: Int, navOptions: NavOption
fun NavGraphBuilder.productDetailsScreen(
onBack: () -> Unit,
onClickProduct: (Int) -> Unit,
navigateToCart: () -> Unit,
) {
composable(
route = "$productDetailRoute/{$productIdArg}",
Expand All @@ -42,6 +43,7 @@ fun NavGraphBuilder.productDetailsScreen(
ProductDetailsRoute(
onBack = onBack,
onClickProduct = onClickProduct,
navigateToCart = navigateToCart,
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,19 @@ import io.devbits.gocart.designsystem.theme.GoCartTheme
fun ProductDetailsRoute(
onBack: () -> Unit,
onClickProduct: (Int) -> Unit,
navigateToCart: () -> Unit,
modifier: Modifier = Modifier,
viewModel: ProductDetailsViewModel = hiltViewModel(),
) {
val relatedProducts by viewModel.products.collectAsStateWithLifecycle()
ProductDetailsScreen(
product = viewModel.product,
relatedProducts = relatedProducts,
onClickProduct = onClickProduct,
onBookmark = {},
onAddToCart = {},
navigateToCart = navigateToCart,
onAddToWishlist = {},
onClickProduct = onClickProduct,
onBack = onBack,
modifier = modifier,
)
Expand All @@ -84,6 +86,7 @@ fun ProductDetailsScreen(
onBookmark: () -> Unit,
onAddToCart: () -> Unit,
onAddToWishlist: () -> Unit,
navigateToCart: () -> Unit,
onBack: () -> Unit,
modifier: Modifier = Modifier,
) {
Expand All @@ -100,7 +103,7 @@ fun ProductDetailsScreen(
}
},
actions = {
IconButton(onClick = {}) {
IconButton(onClick = navigateToCart) {
Icon(
imageVector = Icons.Outlined.ShoppingCart,
contentDescription = null,
Expand Down Expand Up @@ -211,10 +214,11 @@ private fun ProductDetailsScreenPreview() {
ProductDetailsScreen(
product = sampleProducts[0],
relatedProducts = sampleProducts,
onClickProduct = {},
onBookmark = {},
onAddToCart = {},
onAddToWishlist = {},
onClickProduct = {},
navigateToCart = {},
onBack = {},
)
}
Expand Down

0 comments on commit 61b7b88

Please sign in to comment.