- Fix upload-token API: backend returns { uploadUrl, objectKey } directly
(camelCase, no ApiResponse wrapper); update UploadTokenResult interface
and remove incorrect res.data access
- Fix confirm API: backend returns { fileId, objectKey } directly (no url,
no ApiResponse wrapper); update ConfirmResult interface accordingly
- uploadPhoto now returns { url: blobUrl, extra: { objectKey } } so the
ImageUploader can show a local preview while HazardReportPage submits
the confirmed objectKey (via extra) rather than the ephemeral blob URL
- Fix geolocation: getCurrentPosition returns void, not a watch ID;
remove the incorrect cast and clearWatch cleanup call; drop unused gpsWatchId ref
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- vite.config.ts: use loadEnv() to read VITE_BASE (base path) and
DEV_API_TARGET (proxy target) from .env; falls back to '/' and
http://127.0.0.1:3201 so local dev is unchanged
- App.tsx: pass basename={import.meta.env.BASE_URL} to BrowserRouter
so router paths align with the Vite base at runtime
- global.css: change #root overflow from hidden to auto so page
content is scrollable
- .env: document VITE_BASE, VITE_API_BASE, DEV_API_TARGET defaults
- src/config.ts: expose apiBase helper for runtime API prefix
- tsconfig.json: add vite/client types so import.meta.env is typed
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>