Vitron-Front/app/components
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
..
cart feat(cart): mockup-style item rows + separate-shipping note 2026-06-27 23:16:42 +03:30
desktop feat(desktop-header): surface "ورود به فروشگاه من" CTA for sellers and staff 2026-07-07 10:57:14 +00:00
explore feat(search/explore): home-style product tiles with seller brand chip 2026-06-27 17:09:58 +03:30
home fix(notif+auth): camelCase badge fields, seller push prompt, only 401 signs out 2026-07-18 13:18:08 +00:00
notifications feat(notifications): web push opt-in + unread nav badges 2026-06-17 14:02:56 +03:30
product feat(product-detail): ProductDescription section + strict discount guard + category types 2026-07-18 13:19:27 +00:00
seller fix(seller): make inline price editor obviously tappable on touch 2026-07-09 12:51:36 +03:30
sets first 2026-04-29 01:44:16 +03:30
store feat(seller-editor): 9x9 color grid, mandatory size, two-step category, robust image + discount save 2026-07-18 13:19:13 +00:00
thread feat(chat): share the product into the chat + fix empty-thread preview 2026-07-13 15:09:01 +03:30
ui first 2026-04-29 01:44:16 +03:30
AIPromoteModal.tsx first 2026-04-29 01:44:16 +03:30
AppInput.tsx first 2026-04-29 01:44:16 +03:30
AppSelectBox.tsx first 2026-04-29 01:44:16 +03:30
AppTextArea.tsx first 2026-04-29 01:44:16 +03:30
BankLogo.tsx first 2026-04-29 01:44:16 +03:30
CallDialog.tsx first 2026-04-29 01:44:16 +03:30
ClientOnly.tsx first 2026-04-29 01:44:16 +03:30
FilterDrawer.tsx first 2026-04-29 01:44:16 +03:30
HeaderWithSupport.tsx fix(desktop): lay out dashboard sub-pages + form pages for wide screens 2026-07-09 12:06:13 +03:30
HorizontalCollectionsList.tsx Desktop polish: seller header contrast, collection image crop, infinite scroll 2026-06-14 22:19:40 +03:30
HorizontalProductList.tsx feat(home): seller brand chip (logo + name) on product tiles 2026-06-27 16:38:44 +03:30
InteractiveMap.tsx feat(address-map): click-to-select + "use my current location" 2026-06-28 16:43:55 +03:30
LoginRequiredDialog.tsx fix(auth): 6-digit OTP in LoginRequiredDialog 2026-06-18 17:53:01 +03:30
MondrianProductList.tsx feat(home): seller brand chip (logo + name) on product tiles 2026-06-27 16:38:44 +03:30
MyLayout.tsx fix(notif+auth): camelCase badge fields, seller push prompt, only 401 signs out 2026-07-18 13:18:08 +00:00
PersianDatePicker.tsx first 2026-04-29 01:44:16 +03:30
ProfilePagesHeader.tsx fix(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +03:30
SearchTopBar.tsx fix(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +03:30
SellerChip.tsx feat(home): seller brand chip (logo + name) on product tiles 2026-06-27 16:38:44 +03:30
SellerLogo.tsx first 2026-04-29 01:44:16 +03:30
SellerTilesGrid.tsx feat(seller-tiles): remove seller name overlay on desktop grid 2026-07-01 09:15:42 +00:00
SunMoonToggle.tsx first 2026-04-29 01:44:16 +03:30
ThemeToggle.css first 2026-04-29 01:44:16 +03:30
ThemeToggle.tsx first 2026-04-29 01:44:16 +03:30
UiProvider.tsx first 2026-04-29 01:44:16 +03:30