Vitron-Front/app
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
..
assets first 2026-04-29 01:44:16 +03:30
components feat(upload): convert HEIC/HEIF to JPEG on the client before preview/upload 2026-06-23 16:43:30 +03:30
data first 2026-04-29 01:44:16 +03:30
hooks fix(notifications): read camelCase publicKey from VAPID endpoint 2026-06-17 12:06:35 +00:00
lib first 2026-04-29 01:44:16 +03:30
requestHandler fix(store): always revalidate public storefront product list 2026-06-22 20:06:34 +00:00
routes feat(upload): convert HEIC/HEIF to JPEG on the client before preview/upload 2026-06-23 16:43:30 +03:30
styles first 2026-04-29 01:44:16 +03:30
types first 2026-04-29 01:44:16 +03:30
utils feat(upload): convert HEIC/HEIF to JPEG on the client before preview/upload 2026-06-23 16:43:30 +03:30
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 first 2026-04-29 01:44:16 +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