Vitron-Front/app/components
Arda Samadi bac93568f5 feat(upload): convert HEIC/HEIF to JPEG on the client before preview/upload
Most browsers (everything but Safari/WebKit) can't decode HEIC in <img> or
canvas, so picking an iPhone HEIC photo broke the preview and the crop editor,
and could reach the backend in a format it couldn't process. Convert HEIC/HEIF
to JPEG right after selection via heic2any (dynamically imported, browser-only).

- new util app/utils/convert-heic.ts: isHeic() detection (MIME or extension
  when iOS reports no type) + convertHeicToJpeg()/convertHeicFiles(); never
  throws — falls back to the original file on failure.
- wired into the product image picker (store.add.manual) and the store
  logo picker (StoreForm).
- adds heic2any dependency.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 16:43:30 +03:30
..
cart fix(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +03:30
desktop feat(desktop): add search autocomplete to desktop header 2026-06-22 19:23:12 +00:00
explore fix(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +03:30
home fix(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +03:30
notifications feat(notifications): web push opt-in + unread nav badges 2026-06-17 14:02:56 +03:30
product fix(product): detail page price now matches list tiles + fresher feeds 2026-06-22 19:55:11 +00:00
sets first 2026-04-29 01:44:16 +03:30
store feat(upload): convert HEIC/HEIF to JPEG on the client before preview/upload 2026-06-23 16:43:30 +03:30
thread fix(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +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(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +03:30
HorizontalCollectionsList.tsx Desktop polish: seller header contrast, collection image crop, infinite scroll 2026-06-14 22:19:40 +03:30
HorizontalProductList.tsx first 2026-04-29 01:44:16 +03:30
InteractiveMap.tsx first 2026-04-29 01:44:16 +03:30
LoginRequiredDialog.tsx fix(auth): 6-digit OTP in LoginRequiredDialog 2026-06-18 17:53:01 +03:30
MondrianProductList.tsx Desktop fixes: product seller + actions, collection cover, masonry skeleton 2026-06-14 22:59:24 +03:30
MyLayout.tsx fix(ios): respect safe-area insets so chrome clears the notch/home bar 2026-06-18 13:42:51 +03:30
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
SellerLogo.tsx first 2026-04-29 01:44:16 +03:30
SellerTilesGrid.tsx Add responsive desktop layout for home page 2026-06-14 20:07:47 +03:30
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