Vitron-Front/app
fazli 56fcce35c8 feat(product-detail): ProductDescription section + strict discount guard + category types
- app/components/product/ProductDescription.tsx: new below-fold section
  with a "توضیحات محصول" heading, whitespace-pre-line so multi-line seller
  copy (Instagram scrapes, victorwear WooCommerce imports) renders with
  its bullet-list line breaks preserved. Renders on both mobile and
  desktop; nothing shown when the product has no description.
- app/components/product/ProductInfo.tsx: removed the collapsed
  single-<p> mobile description; the new section replaces it.
- app/components/product/ProductDetailView.tsx: pricingOf now hides the
  discount when discount_price >= price (was only hiding when equal),
  so a stale row where the discount price accidentally matches or
  exceeds the base can never render as a fake promo. Mounts
  ProductDescription just above the mobile Contact button and reviews.
- app/components/product/index.ts: export ProductDescription.
- src/api/types/models/index.ts: ProductCategory now carries readonly
  parentId / parentName so the two-step category picker can build the
  parent→sub tree from a flat category list without an extra fetch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-18 13:19:27 +00:00
..
assets first 2026-04-29 01:44:16 +03:30
components feat(product-detail): ProductDescription section + strict discount guard + category types 2026-07-18 13:19:27 +00:00
data first 2026-04-29 01:44:16 +03:30
hooks fix(store): don't bounce owners home, stop cross-user myStores cache 2026-07-18 13:18:23 +00:00
lib feat(seller): size chart editor + buyer size guide (راهنمای سایز) 2026-07-13 13:21:23 +03:30
requestHandler fix(store): don't bounce owners home, stop cross-user myStores cache 2026-07-18 13:18:23 +00:00
routes feat(seller-editor): 9x9 color grid, mandatory size, two-step category, robust image + discount save 2026-07-18 13:19:13 +00:00
styles first 2026-04-29 01:44:16 +03:30
types first 2026-04-29 01:44:16 +03:30
utils fix(notif+auth): camelCase badge fields, seller push prompt, only 401 signs out 2026-07-18 13:18:08 +00:00
auth.server.ts first 2026-04-29 01:44:16 +03:30
cookie.ts first 2026-04-29 01:44:16 +03:30
entry.client.tsx first 2026-04-29 01:44:16 +03:30
entry.server.tsx first 2026-04-29 01:44:16 +03:30
i18n.ts first 2026-04-29 01:44:16 +03:30
root.tsx fix(pwa): add apple-mobile-web-app-capable so iOS applies safe-area insets 2026-07-09 11:35:12 +03:30
sessions.server.ts Security fixes: session hardening, open redirect, SSR path injection 2026-06-14 19:02:11 +03:30
tailwind.css first 2026-04-29 01:44:16 +03:30