Lots of frontend changes

This commit is contained in:
Andras Schmelczer 2026-02-07 19:10:53 +00:00
parent ec29631c44
commit 555ba7cf53
38 changed files with 1508 additions and 648 deletions

View file

@ -8,7 +8,7 @@ import type {
ViewChangeParams,
ApiResponse,
} from '../types';
import { buildFilterString, apiUrl, logNonAbortError } from '../lib/api';
import { buildFilterString, apiUrl, logNonAbortError, authHeaders } from '../lib/api';
import { POSTCODE_ZOOM_THRESHOLD } from '../lib/map-utils';
const DEBOUNCE_MS = 150;
@ -76,9 +76,12 @@ export function useMapData({
const params = new URLSearchParams({ bounds: boundsStr });
if (filtersStr) params.set('filters', filtersStr);
params.set('fields', viewFeature || '');
const res = await fetch(apiUrl('postcodes', params), {
signal: abortControllerRef.current.signal,
});
const res = await fetch(
apiUrl('postcodes', params),
authHeaders({
signal: abortControllerRef.current.signal,
})
);
const json: { features: PostcodeFeature[] } = await res.json();
setPostcodeData(json.features || []);
setRawData([]);
@ -89,9 +92,12 @@ export function useMapData({
});
if (filtersStr) params.set('filters', filtersStr);
params.set('fields', viewFeature || '');
const res = await fetch(apiUrl('hexagons', params), {
signal: abortControllerRef.current.signal,
});
const res = await fetch(
apiUrl('hexagons', params),
authHeaders({
signal: abortControllerRef.current.signal,
})
);
const json: ApiResponse = await res.json();
setRawData(json.features || []);
setPostcodeData([]);
@ -162,7 +168,13 @@ export function useMapData({
}, [viewFeature, features, dataRange, activeFeature, dragValue]);
const handleViewChange = useCallback(
({ resolution: newRes, bounds: newBounds, zoom: newZoom, latitude, longitude }: ViewChangeParams) => {
({
resolution: newRes,
bounds: newBounds,
zoom: newZoom,
latitude,
longitude,
}: ViewChangeParams) => {
const boundsKey = `${newBounds.south},${newBounds.west},${newBounds.north},${newBounds.east},${newRes}`;
if (boundsKey !== prevBoundsRef.current) {
prevBoundsRef.current = boundsKey;
@ -175,10 +187,13 @@ export function useMapData({
[]
);
const setInitialView = useCallback((view: { latitude: number; longitude: number; zoom: number }) => {
setCurrentView(view);
setZoom(view.zoom);
}, []);
const setInitialView = useCallback(
(view: { latitude: number; longitude: number; zoom: number }) => {
setCurrentView(view);
setZoom(view.zoom);
},
[]
);
return {
data,