fix(tradein-frontend): MapPicker focus trap + Leaflet SRI, PhotoUpload size check #514

Merged
lekss361 merged 1 commit from feat/tradein-frontend-isolated-ux into main 2026-05-24 12:01:17 +00:00

1 commit

Author SHA1 Message Date
lekss361
c5506aab37 fix(tradein-frontend): MapPicker focus trap + Leaflet SRI, PhotoUpload size check
Two isolated UX/security fixes from 2026-05-24 audit:

* MapPicker.tsx (#12): add role=dialog, aria-modal, aria-labelledby; trap
  Tab/Shift+Tab focus inside modal; Escape closes; restore focus on close.
  Pin Leaflet 1.9.4 CSS+JS with sha256 SRI hashes + crossOrigin=anonymous
  (defends against unpkg CDN hijack).
* PhotoUpload.tsx (#13): client-side file.size check (10 MB mirror of
  backend _MAX_PHOTO_BYTES) prevents wasted bandwidth on oversized uploads.
  Replace single error state with per-file errors[] list. Clear stale
  errors on every new file pick.
2026-05-24 14:52:31 +03:00