Post-M2 self-walkthrough polish, batched into one commit. Map / heat: - fix heat-layer white-screen crash after login (add layer to map before setLatLngs; an off-map leaflet.heat layer has a null _map and throws) - normalize each heat layer to the densest pixel cell visible in the CURRENT viewport (maxZoom:0 so intensity factor f=1) and recompute on moveend/zoomend, so sparse poo data reaches red and stays normalized at any zoom level - dark CARTO basemap tiles when the color scheme is dark UI: - dark-mode toggle in the top-right, beside the settings gear - switch top-right nav (records / theme / settings / logout) to Feather icons with hover tooltips - home: Grafana-style quick time-range presets + back/forward shift buttons, placed between the From/To pickers and Apply; fix Select/tooltip z-index (Leaflet stacking) and the shift-button height alignment API client: - stop flooding GET /api/session with 401s: the session probe and the login endpoint own their 401s (no global redirect), which fixes the logout hang and the spinning login page Compose: - rename docker-compose.override.yml -> docker-compose.dev.yml as an explicit, non-auto-layered dev stack (8001, -dev container names, prod-copy ./data DB); update tests/test_deployment.py (read dev.yml, tolerate the !override tag) and the README "Docker Compose" section Tests: - pixel-grid peak counter, time-range presets, heat-layer ordering regression, and 401-redirect regression
22 lines
531 B
TypeScript
22 lines
531 B
TypeScript
/**
|
|
* Public surface of the map module (M2-T09).
|
|
* Only RecordsMap.tsx imports leaflet — external code should not.
|
|
*/
|
|
export { RecordsMap } from './RecordsMap'
|
|
export type { RecordsMapProps } from './RecordsMap'
|
|
|
|
export {
|
|
locationsToHeatPoints,
|
|
pooToHeatPoints,
|
|
locationsToMapPoints,
|
|
pooToMapPoints,
|
|
filterPooByTimeWindow,
|
|
daysAgoISO,
|
|
nowISO,
|
|
computeCenter,
|
|
TIME_PRESETS,
|
|
presetRange,
|
|
shiftRange,
|
|
} from './mapUtils'
|
|
export type { HeatPoint, LocationMapPoint, PooMapPoint, TimePreset } from './mapUtils'
|