From c2552af07914ea5ababeb827a43687b794f32bcb Mon Sep 17 00:00:00 2001 From: "amirhosein.ashourloo" Date: Sun, 23 Aug 2026 09:50:56 +0330 Subject: [PATCH] Fix product links, equalize card heights, and switch to IRANYekan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Resolve product cards from group endpoints (store-specials, brand-groups) that only return a productId, not a slug, via a new /products/id/[id] route backed by GET /products/by-id/{id} — clicking these was previously falling back to a name search instead of the detail page. - Derive discount price/percent generically in normalizeProduct so any source with real old/new prices shows it, even without an explicit discount field from the API. - Product cards and the detail page buy-box: show the discount badge beside the old (struck-through) price, current price alone on its own line, matching the reference design. - Equalize product card heights within a carousel row (Swiper's own CSS doesn't stretch slides to the tallest sibling in slidesPerView: "auto" + freeMode mode) so the add-to-cart button lines up across cards regardless of whether a card has a discount line. - Featured categories: 110px images with no border/radius, matching the site's other category card treatment. - Replace Vazirmatn with the client's IRANYekan font files — light weight for body text, bold weight for headings only. Co-Authored-By: Claude Sonnet 5 --- public/fonts/iranyekanwebboldfanum.woff | Bin 0 -> 33581 bytes public/fonts/iranyekanweblightfanum.woff | Bin 0 -> 33941 bytes src/app/globals.css | 17 ++++-- src/app/layout.tsx | 20 ++++--- src/app/products/[slug]/page.tsx | 7 ++- src/app/products/id/[id]/page.tsx | 15 ++++++ src/components/home/FeaturedCategories.tsx | 20 +++---- .../product/ProductPurchasePanel.tsx | 38 +++++++++++-- src/components/ui/Carousel.tsx | 6 ++- src/components/ui/ProductCard.tsx | 36 +++++++------ src/lib/meshkee.ts | 51 ++++++++++++++---- 11 files changed, 158 insertions(+), 52 deletions(-) create mode 100644 public/fonts/iranyekanwebboldfanum.woff create mode 100644 public/fonts/iranyekanweblightfanum.woff create mode 100644 src/app/products/id/[id]/page.tsx diff --git a/public/fonts/iranyekanwebboldfanum.woff b/public/fonts/iranyekanwebboldfanum.woff new file mode 100644 index 0000000000000000000000000000000000000000..07f9756fbacf17967305b010b61cd7df77834f7b GIT binary patch literal 33581 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 literal 0 HcmV?d00001 diff --git a/public/fonts/iranyekanweblightfanum.woff b/public/fonts/iranyekanweblightfanum.woff new file mode 100644 index 0000000000000000000000000000000000000000..9e6d42cd181425697fc545b772467d49e266b35d GIT binary patch literal 33941 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 WP(%R$Mnek#1prXT)e>9)0002(I#c-o literal 0 HcmV?d00001 diff --git a/src/app/globals.css b/src/app/globals.css index 2cfcfe1..43fe0ef 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -23,7 +23,8 @@ --color-red-dark: var(--red-dark); --color-red-light: var(--red-light); --color-red-muted: var(--red-muted); - --font-sans: var(--font-vazirmatn); + --font-sans: var(--font-iranyekan); + --font-sans-bold: var(--font-iranyekan-bold); --font-display: var(--font-syne); } @@ -38,11 +39,21 @@ html { body { background: var(--background); color: var(--foreground); - font-family: var(--font-vazirmatn), system-ui, sans-serif; + font-family: var(--font-iranyekan), system-ui, sans-serif; +} + +/* Titles use the bold face; everything else stays on the light one. */ +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: var(--font-iranyekan-bold), var(--font-iranyekan), system-ui, sans-serif; } .font-display { - font-family: var(--font-syne), var(--font-vazirmatn), sans-serif; + font-family: var(--font-syne), var(--font-iranyekan), sans-serif; } @keyframes fade-up { diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 1e94339..dca80ce 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,15 +1,23 @@ import type { Metadata } from "next"; -import { Vazirmatn, Syne } from "next/font/google"; +import { Syne } from "next/font/google"; +import localFont from "next/font/local"; import "./globals.css"; import { TopBar } from "@/components/home/TopBar"; import { Header } from "@/components/home/Header"; import { Footer } from "@/components/home/Footer"; import { getBusinessInfo, getCategories, getCategoryTree } from "@/lib/meshkee"; -const vazirmatn = Vazirmatn({ - variable: "--font-vazirmatn", - subsets: ["arabic", "latin"], - weight: ["400", "500", "600", "700"], +// Body text — headings use the bold weight instead, see globals.css. +const iranyekan = localFont({ + variable: "--font-iranyekan", + src: "../../public/fonts/iranyekanweblightfanum.woff", + weight: "400", +}); + +const iranyekanBold = localFont({ + variable: "--font-iranyekan-bold", + src: "../../public/fonts/iranyekanwebboldfanum.woff", + weight: "700", }); const syne = Syne({ @@ -34,7 +42,7 @@ export default async function RootLayout({ children }: LayoutProps<"/">) { diff --git a/src/app/products/[slug]/page.tsx b/src/app/products/[slug]/page.tsx index 1753ad3..90a9a90 100644 --- a/src/app/products/[slug]/page.tsx +++ b/src/app/products/[slug]/page.tsx @@ -60,7 +60,12 @@ export default async function ProductDetailPage({ } variations={variations} storeVariants={storeVariants} - fallbackPrice={{ minPrice: product.minPrice, maxPrice: product.maxPrice }} + fallbackPrice={{ + minPrice: product.minPrice, + maxPrice: product.maxPrice, + oldPrice: product.oldPrice, + discount: product.discount, + }} inStock={product.inStock} contactPhone={contactPhone} storeName={businessInfo?.nameFa} diff --git a/src/app/products/id/[id]/page.tsx b/src/app/products/id/[id]/page.tsx new file mode 100644 index 0000000..cbc0eca --- /dev/null +++ b/src/app/products/id/[id]/page.tsx @@ -0,0 +1,15 @@ +import { notFound, redirect } from "next/navigation"; +import { getProductById } from "@/lib/meshkee"; + +export default async function ProductByIdPage({ + params, +}: { + params: Promise<{ id: string }>; +}) { + const { id } = await params; + const product = await getProductById(id); + + if (!product?.slug) notFound(); + + redirect(`/products/${product.slug}`); +} diff --git a/src/components/home/FeaturedCategories.tsx b/src/components/home/FeaturedCategories.tsx index 6b780fa..a7c89c3 100644 --- a/src/components/home/FeaturedCategories.tsx +++ b/src/components/home/FeaturedCategories.tsx @@ -4,7 +4,6 @@ import { Swiper, SwiperSlide } from "swiper/react"; import { FreeMode } from "swiper/modules"; import "swiper/css"; import "swiper/css/free-mode"; -import { Placeholder } from "@/components/ui/Placeholder"; import { SectionTitle } from "@/components/ui/SectionTitle"; import { EmptyState } from "@/components/ui/EmptyState"; import type { Category, StaticImageWithUrl } from "@/lib/meshkee"; @@ -13,9 +12,9 @@ function CategorySlotCard({ image }: { image: StaticImageWithUrl }) { const label = image.titleFa ?? image.titleEn ?? ""; const content = (
-
+
{/* eslint-disable-next-line @next/next/no-img-element */} - {label} + {label}
{label && ( @@ -87,13 +86,14 @@ export function FeaturedCategories({ className="animate-slide-in group flex h-full flex-col items-center rounded-xl border border-border bg-surface p-3 transition-all hover:border-red hover:shadow-md" style={{ animationDelay: `${i * 60}ms` }} > - +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + {cat.name} +
{cat.name} diff --git a/src/components/product/ProductPurchasePanel.tsx b/src/components/product/ProductPurchasePanel.tsx index e994d26..3436037 100644 --- a/src/components/product/ProductPurchasePanel.tsx +++ b/src/components/product/ProductPurchasePanel.tsx @@ -30,7 +30,12 @@ export function ProductPurchasePanel({ header: ReactNode; variations: ProductVariation[]; storeVariants: ProductStoreVariant[]; - fallbackPrice: { minPrice: number | null; maxPrice: number | null }; + fallbackPrice: { + minPrice: number | null; + maxPrice: number | null; + oldPrice?: number | null; + discount?: number; + }; inStock: boolean; contactPhone?: string; storeName?: string; @@ -68,6 +73,17 @@ export function ProductPurchasePanel({ ? `${formatPrice(fallbackPrice.minPrice)} - ${formatPrice(fallbackPrice.maxPrice)}` : null; + const variantOldPrice = + matchedVariant?.discountedPrice != null && + matchedVariant?.price != null && + matchedVariant.price !== matchedVariant.discountedPrice + ? matchedVariant.price + : null; + const oldPrice = hasVariations ? variantOldPrice : (fallbackPrice.oldPrice ?? null); + const discount = hasVariations + ? (oldPrice != null && price != null ? Math.round((1 - price / oldPrice) * 100) : null) + : (fallbackPrice.discount ?? null); + const stockQuantity = hasVariations ? (matchedVariant?.stockQuantity ?? 0) : null; const available = hasVariations ? Boolean(matchedVariant) && stockQuantity! > 0 : inStock; const maxQty = stockQuantity && stockQuantity > 0 ? stockQuantity : 99; @@ -137,10 +153,22 @@ export function ProductPurchasePanel({ {price != null ? ( <> -

- {priceRangeLabel ?? formatPrice(price)} - تومان -

+
+ {!priceRangeLabel && oldPrice != null && ( +
+ {formatPrice(oldPrice)} + {discount != null && ( + + {discount}٪ + + )} +
+ )} +

+ {priceRangeLabel ?? formatPrice(price)} + تومان +

+
تعداد: diff --git a/src/components/ui/Carousel.tsx b/src/components/ui/Carousel.tsx index fb13506..fc2f273 100644 --- a/src/components/ui/Carousel.tsx +++ b/src/components/ui/Carousel.tsx @@ -79,7 +79,11 @@ export function Carousel({ children, ariaLabel }: CarouselProps) { className="!px-1 !py-2" > {Children.map(children, (child) => ( - {child} + // Swiper's own CSS pins slide height to 100%, which — with no definite + // wrapper height — resolves per-slide instead of stretching to match + // the tallest sibling. height:auto (inline, so it wins) lets normal + // flex stretch equalize card heights across a row. + {child} ))}
diff --git a/src/components/ui/ProductCard.tsx b/src/components/ui/ProductCard.tsx index 6485bca..c2210b1 100644 --- a/src/components/ui/ProductCard.tsx +++ b/src/components/ui/ProductCard.tsx @@ -36,11 +36,6 @@ export function ProductCard({ fit="contain" className="aspect-square w-full rounded-lg border-0" /> - {discount && ( - - {discount}٪ - - )} {variant === "brand" && ( {brand} @@ -54,8 +49,18 @@ export function ProductCard({

{name}

-
- +
+ {oldPrice != null && ( +
+ {formatPrice(oldPrice)} + {discount != null && ( + + {discount}٪ + + )} +
+ )} +
{price != null ? ( <> {formatPrice(price)} @@ -64,12 +69,7 @@ export function ProductCard({ ) : ( تماس با فروشگاه )} - - {oldPrice && ( - - {formatPrice(oldPrice)} - - )} +
@@ -77,9 +77,15 @@ export function ProductCard({ return (
- {href ? {info} : info} + {href ? ( + + {info} + + ) : ( +
{info}
+ )}
{price != null ? (