diff --git a/apps/user-ui/components/ProductDetail.tsx b/apps/user-ui/components/ProductDetail.tsx index cb08edf..3f5c835 100644 --- a/apps/user-ui/components/ProductDetail.tsx +++ b/apps/user-ui/components/ProductDetail.tsx @@ -14,6 +14,7 @@ import { useProductSlotIdentifier } from '@/hooks/useProductSlotIdentifier'; import { useFlashNavigationStore } from '@/components/stores/flashNavigationStore'; import FloatingCartBar from './floating-cart-bar'; import { useStoreHeaderStore } from '@/src/store/storeHeaderStore'; +import { useCartStore } from '@/src/store/cartStore'; const { width: screenWidth } = Dimensions.get("window"); const carouselWidth = screenWidth; @@ -55,6 +56,7 @@ const ProductDetail: React.FC = ({ productId, isFlashDeliver const removeFromCart = useRemoveFromCart({ showSuccessAlert: false, showErrorAlert: false, refetchCart: true }, cartType); const { getQuickestSlot } = useProductSlotIdentifier(); const { setShouldNavigateToCart } = useFlashNavigationStore(); + const { setAddedToCartProduct } = useCartStore(); const sortedDeliverySlots = useMemo(() => { if (!productDetail?.deliverySlots) return [] @@ -305,7 +307,18 @@ const ProductDetail: React.FC = ({ productId, isFlashDeliver borderColor: (productDetail.isOutOfStock || (isFlashDelivery && !productDetail.isFlashAvailable)) ? '#9ca3af' : theme.colors.brand500, backgroundColor: 'white' }]} - onPress={() => !(productDetail.isOutOfStock || (isFlashDelivery && !productDetail.isFlashAvailable)) && handleAddToCart(productDetail.id)} + onPress={() => { + if (productDetail.isOutOfStock || (isFlashDelivery && !productDetail.isFlashAvailable)) { + return; + } + if (isFlashDelivery) { + // Flash delivery: direct add + handleAddToCart(productDetail.id); + } else { + // Regular delivery: use dialog + setAddedToCartProduct({ productId: productDetail.id, product: productDetail }); + } + }} disabled={productDetail.isOutOfStock || (isFlashDelivery && !productDetail.isFlashAvailable)} >