arch-atlas

Marketplace Routes

core/routing/app_router.dart · /marketPlace + /product/:id

di

Overview

/marketPlace points at MarketplaceHomeScreen inside the ShellRoute. Product detail uses AppRoute.productDetails and reads `state.extra as Product` to avoid a refetch on tile-tap.

User Flow

  1. Home grid tile 'Marketplace' (client) → context.push(/marketPlace).
  2. MarketplaceProductList tile tap → context.push(/product-details, extra: product).
  3. ProductDetailScreen reads the Product directly from extra — does not call getProductById on entry.

Cases & Edge Cases

  • Deep-linking to /product-details/:id without extra is unsupported today — the route builder casts state.extra to Product unconditionally.
  • The marketPlace path uses camel-case in AppRoute — keep it stable; downstream URLs depend on it.

Code References

  • lib/src/core/routing/app_router.dart:494 // /marketPlace
  • lib/src/core/routing/app_router.dart:499 // /product-details
  • lib/src/core/routing/routes.dart // AppRoute.marketPlace

API Calls

Empty — fill this in later. Open the manifest and add content here.

Notes

If product details ever needs to be a real URL (sharable link), refactor to read pathParameters['id'] and call getProductById on entry.