diff --git a/app/components/MyLayout.tsx b/app/components/MyLayout.tsx index e9352e2..f07ac69 100644 --- a/app/components/MyLayout.tsx +++ b/app/components/MyLayout.tsx @@ -34,6 +34,7 @@ const MyLayout = React.memo(({ children }: { children: React.ReactNode }) => { const isDesktopReady = p === "/" || p.startsWith("/search/") || + p.startsWith("/product/") || p.startsWith("/seller/") || p === "/collections" || p.startsWith("/collection/") || diff --git a/app/components/product/BottomBar.tsx b/app/components/product/BottomBar.tsx index d096006..f6ae422 100644 --- a/app/components/product/BottomBar.tsx +++ b/app/components/product/BottomBar.tsx @@ -194,7 +194,7 @@ export const BottomBar = ({ return ( <> -
+
- {!isOwner && } - - {/* Inactive Product Status */} - {!productActiveStatus && isOwner ? ( -
-
- - - این محصول در حال حاضر غیرفعال است - -
- +
+ {!isOwner && ( +
+
- ) : !isOwner ? ( - - ) : null} - + )} - {hasAnyStock ? ( - <> - {hasColorVariants && ( - (color.info as unknown as { detail: string })?.detail + {/* Desktop breadcrumb */} + + + {/* Top section: gallery | info (two columns on desktop) */} +
+ {/* Gallery */} +
+ +
+ + {/* Info */} +
+ {/* Inactive Product Status */} + {!productActiveStatus && isOwner ? ( +
+
+ + + این محصول در حال حاضر غیرفعال است + +
+ +
+ ) : !isOwner ? ( + + ) : null} + + + {hasAnyStock ? ( + <> + {hasColorVariants && ( + + (color.info as unknown as { detail: string })?.detail + )} + selectedColor={selectedColor} + setSelectedColor={setSelectedColor} + /> )} - selectedColor={selectedColor} - setSelectedColor={setSelectedColor} - /> + + {hasSizeVariants && ( + size.value || "")} + selectedSize={selectedSize} + setSelectedSize={setSelectedSize} + /> + )} + + ) : ( +
+

موجود نیست

+
+ )} + {isOwner && ( +
+ +
)} - {hasSizeVariants && ( - size.value || "")} + {/* Buy box (fixed bottom bar on mobile, inline on desktop) */} + {!isOwner && ( + + (color.info as unknown as { detail: string })?.detail === + selectedColor + )?.value || null + } selectedSize={selectedSize} - setSelectedSize={setSelectedSize} /> )} - - ) : ( -
-

موجود نیست

- )} - {isOwner && ( -
- -
- )} +
+ + {/* Full-width below the fold: contact, reviews, similar */} {productActiveStatus && ( <> {!isOwner && } {/* Similar Products Section */} {!isOwner && ( -
-
-

محصولات مشابه

-

محصولات مرتبط که ممکن است بپسندید

+
+
+

محصولات مشابه

+

+ محصولات مرتبط که ممکن است بپسندید +

)} - {/* Bottom bar handles variant selection and pricing */} )} - {!isOwner && ( - - (color.info as unknown as { detail: string })?.detail === - selectedColor - )?.value || null - } - selectedSize={selectedSize} - /> - )}
); }); diff --git a/app/components/product/ProductInfo.tsx b/app/components/product/ProductInfo.tsx index 1d7290b..061b14c 100644 --- a/app/components/product/ProductInfo.tsx +++ b/app/components/product/ProductInfo.tsx @@ -10,7 +10,7 @@ export const ProductInfo = ({ product, productDiscountPercent, }: ProductInfoProps) => ( -
+
{productDiscountPercent && productDiscountPercent > 0 ? (
@@ -23,7 +23,7 @@ export const ProductInfo = ({ {productDiscountPercent && productDiscountPercent > 0 ? (
) : null} -

{product.title}

+

{product.title}

{product.description}