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. |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| Dockerfile | ||
| next.config.ts | ||
| package.json | ||
| tsconfig.json | ||