) : null}
diff --git a/src/modules/energy/hydrogen-drill-context.test.ts b/src/modules/energy/hydrogen-drill-context.test.ts
index b677cbe..cc306ed 100644
--- a/src/modules/energy/hydrogen-drill-context.test.ts
+++ b/src/modules/energy/hydrogen-drill-context.test.ts
@@ -82,20 +82,30 @@ test('clears station parameters when returning to overview', () => {
assert.equal(url, '/energy?company=5&hydrogenScope=lingniu#hydrogen');
});
-test('preserves a selected order date in the hydrogen analysis URL', () => {
+test('preserves a selected order date and page in the hydrogen analysis URL', () => {
const context = parseHydrogenDrillContext(
- '?hydrogenScope=lingniu&hydrogenStart=2026-08-01&hydrogenEnd=2026-08-07&hydrogenDate=2026-08-05',
+ '?hydrogenScope=lingniu&hydrogenStart=2026-08-01&hydrogenEnd=2026-08-07&hydrogenDate=2026-08-05&hydrogenPage=3',
);
assert.equal(context.selectedDate, '2026-08-05');
+ assert.equal(context.orderPage, 3);
assert.equal(
buildHydrogenDrillUrl(
{ pathname: '/energy', search: '?company=5', hash: '#hydrogen' },
context,
),
- '/energy?company=5&hydrogenScope=lingniu&hydrogenStart=2026-08-01&hydrogenEnd=2026-08-07&hydrogenDate=2026-08-05#hydrogen',
+ '/energy?company=5&hydrogenScope=lingniu&hydrogenStart=2026-08-01&hydrogenEnd=2026-08-07&hydrogenDate=2026-08-05&hydrogenPage=3#hydrogen',
);
assert.equal(
parseHydrogenDrillContext('?hydrogenStart=2026-08-01&hydrogenEnd=2026-08-07&hydrogenDate=2026-08-08').selectedDate,
undefined,
);
+ assert.equal(parseHydrogenDrillContext('?hydrogenPage=3').orderPage, undefined);
+ assert.equal(parseHydrogenDrillContext('?hydrogenDate=2026-08-05&hydrogenPage=0').orderPage, undefined);
+ assert.equal(
+ buildHydrogenDrillUrl(
+ { pathname: '/energy', search: '', hash: '#hydrogen' },
+ { level: 'overview', vehicleScope: 'lingniu', orderPage: 3 },
+ ),
+ '/energy?hydrogenScope=lingniu#hydrogen',
+ );
});
diff --git a/src/modules/energy/hydrogen-drill-context.ts b/src/modules/energy/hydrogen-drill-context.ts
index 4444aa6..6ecf3e7 100644
--- a/src/modules/energy/hydrogen-drill-context.ts
+++ b/src/modules/energy/hydrogen-drill-context.ts
@@ -12,6 +12,7 @@ export interface HydrogenDrillContext {
startDate?: string;
endDate?: string;
selectedDate?: string;
+ orderPage?: number;
}
interface LocationParts {
@@ -74,6 +75,8 @@ export function parseHydrogenDrillContext(search: string): HydrogenDrillContext
const rangeEnd = startDate && endDate ? (startDate <= endDate ? endDate : startDate) : undefined;
if (selectedDate && (!rangeStart || !rangeEnd || (selectedDate >= rangeStart && selectedDate <= rangeEnd))) {
context.selectedDate = selectedDate;
+ const orderPage = positiveInteger(params.get('hydrogenPage'));
+ if (orderPage && orderPage > 1) context.orderPage = orderPage;
}
return context;
}
@@ -93,6 +96,7 @@ export function buildHydrogenDrillUrl(
'hydrogenStart',
'hydrogenEnd',
'hydrogenDate',
+ 'hydrogenPage',
]) {
params.delete(key);
}
@@ -110,6 +114,9 @@ export function buildHydrogenDrillUrl(
if (context.startDate) params.set('hydrogenStart', context.startDate);
if (context.endDate) params.set('hydrogenEnd', context.endDate);
if (context.selectedDate) params.set('hydrogenDate', context.selectedDate);
+ if (context.selectedDate && context.orderPage && context.orderPage > 1) {
+ params.set('hydrogenPage', String(context.orderPage));
+ }
const query = params.toString();
return `${location.pathname}${query ? `?${query}` : ''}${location.hash}`;