From fa65db8804fd05aa6201e6b871fb3cde16bb6e79 Mon Sep 17 00:00:00 2001 From: Arda Samadi Date: Sun, 14 Jun 2026 22:59:24 +0330 Subject: [PATCH] Desktop fixes: product seller + actions, collection cover, masonry skeleton - product: show seller (logo + name) in the desktop info column (was missing after hiding the mobile header); action icons (save/share/collection/AI) are now circular bordered buttons on desktop instead of a bare icon row - collection detail: cover constrained to a 360px portrait column with object-cover (fixes over-long image + side margins); tighter spacing - masonry: only render the loading skeleton while actively fetching (removes the persistent grey block before the footer); sentinel moved above it Co-Authored-By: Claude Opus 4.8 --- app/components/MondrianProductList.tsx | 2 +- app/components/product/ProductActions.tsx | 83 +++++++++++--------- app/components/product/ProductDetailView.tsx | 17 ++++ app/routes/collection.$id.tsx | 6 +- 4 files changed, 65 insertions(+), 43 deletions(-) diff --git a/app/components/MondrianProductList.tsx b/app/components/MondrianProductList.tsx index b3b4515..c5ada16 100644 --- a/app/components/MondrianProductList.tsx +++ b/app/components/MondrianProductList.tsx @@ -194,8 +194,8 @@ const MondrianProductList = ({ ))} - {hasNextPage && }
+ {isFetchingNextPage && } )} diff --git a/app/components/product/ProductActions.tsx b/app/components/product/ProductActions.tsx index f3826db..270f4de 100644 --- a/app/components/product/ProductActions.tsx +++ b/app/components/product/ProductActions.tsx @@ -160,53 +160,58 @@ export const ProductActions = ({ productId }: { productId: string }) => { } }; + const actionBtn = + "flex items-center justify-center cursor-pointer transition-colors lg:w-10 lg:h-10 lg:rounded-full lg:border lg:border-WHITE3 lg:hover:bg-WHITE2"; + return ( <> -
-
- {isCheckingBookmark ? ( - - ) : isBookmarked ? ( - <> - {isDeletingBookmark ? ( +
+
+ + +
- + aria-label="پرو با هوش مصنوعی" + className={actionBtn} + > + + {showAIFeatureTooltip && (
diff --git a/app/components/product/ProductDetailView.tsx b/app/components/product/ProductDetailView.tsx index 430725a..25fa53c 100644 --- a/app/components/product/ProductDetailView.tsx +++ b/app/components/product/ProductDetailView.tsx @@ -16,6 +16,7 @@ import { Button } from "../ui/button"; import { useNavigate, Link } from "@remix-run/react"; import { useSimilarProductsInfinite } from "~/requestHandler/use-product-hooks"; import MondrianProductList from "../MondrianProductList"; +import SellerLogo from "../SellerLogo"; interface ProductDetailViewProps { product: ProductDetailType; @@ -243,6 +244,22 @@ export const ProductDetailView = memo(function ProductDetailView({ {/* Info */}
+ {/* Seller (desktop) */} + {!isOwner && product.seller?.username ? ( + + + + {product.seller.username} + + + ) : null} {/* Inactive Product Status */} {!productActiveStatus && isOwner ? (
diff --git a/app/routes/collection.$id.tsx b/app/routes/collection.$id.tsx index 6002fb2..425dc42 100644 --- a/app/routes/collection.$id.tsx +++ b/app/routes/collection.$id.tsx @@ -141,14 +141,14 @@ export default function CollectionDetail() { {/* Content */}
{/* Collection Header */} -
+
{/* Cover Image */} -
+
{collection.coverImageUrl ? ( {collection.title ) : (