has issues

This commit is contained in:
Andras Schmelczer 2026-05-25 13:20:17 +01:00
parent 2e112d7398
commit c645b0f1d4
96 changed files with 2147083 additions and 5787 deletions

View file

@ -5,8 +5,9 @@ import type { Bounds, FeatureFilters, FeatureMeta } from '../../../types';
import { apiUrl, authHeaders, buildFilterString, logNonAbortError } from '../../../lib/api';
import { trackEvent } from '../../../lib/analytics';
import type { ExportNotice, ExportState } from './types';
import type { TravelTimeEntry } from '../../../hooks/useTravelTime';
import { resolveTransitVariant, type TravelTimeEntry } from '../../../hooks/useTravelTime';
import { buildTravelParam, dedupeTravelTimeEntries } from '../../../lib/travel-params';
import type { OverlayId } from '../../../lib/overlays';
const EXPORT_FILE_NAME = 'perfect-postcode-export.xlsx';
const EXPORT_TIMEOUT_MS = 150_000;
@ -70,7 +71,8 @@ function triggerExportDownload(blob: Blob, fileName: string): void {
function appendTravelStateParams(params: URLSearchParams, entries: TravelTimeEntry[]): void {
for (const entry of dedupeTravelTimeEntries(entries)) {
if (!entry.slug) continue;
let value = `${entry.mode}:${entry.slug}:${encodeURIComponent(entry.label)}`;
const serverMode = resolveTransitVariant(entry);
let value = `${serverMode}:${entry.slug}:${encodeURIComponent(entry.label)}`;
if (entry.useBest) value += ':b';
if (entry.timeRange) {
value += `:${entry.timeRange[0]}:${entry.timeRange[1]}`;
@ -84,6 +86,7 @@ interface UseExportControllerOptions {
filters: FeatureFilters;
features: FeatureMeta[];
travelTimeEntries: TravelTimeEntry[];
selectedOverlays: Set<OverlayId>;
shareCode?: string;
t: TFunction;
onExportStateChange?: (state: ExportState) => void;
@ -94,6 +97,7 @@ export function useExportController({
filters,
features,
travelTimeEntries,
selectedOverlays,
shareCode,
t,
onExportStateChange,
@ -147,6 +151,9 @@ export function useExportController({
const travelParam = buildTravelParam(travelTimeEntries);
if (travelParam) params.set('travel', travelParam);
appendTravelStateParams(params, travelTimeEntries);
for (const overlay of selectedOverlays) {
params.append('overlay', overlay);
}
if (shareCode) params.set('share', shareCode);
const url = apiUrl('export', params);
@ -189,6 +196,7 @@ export function useExportController({
exporting,
features,
filters,
selectedOverlays,
shareCode,
showExportNotice,
t,