lgtm
This commit is contained in:
parent
a08b5d2ae0
commit
b98f0e3904
38 changed files with 3732 additions and 483 deletions
27
frontend/src/lib/travel-params.ts
Normal file
27
frontend/src/lib/travel-params.ts
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import type { TravelTimeEntry } from '../hooks/useTravelTime';
|
||||
|
||||
export function buildTravelParam(
|
||||
entries: TravelTimeEntry[],
|
||||
excludeFieldKey?: string,
|
||||
includeUnboundedExcludedRange = false
|
||||
): string {
|
||||
const segments: string[] = [];
|
||||
|
||||
for (const entry of entries) {
|
||||
if (!entry.slug) continue;
|
||||
|
||||
let segment = `${entry.mode}:${entry.slug}`;
|
||||
if (entry.useBest) segment += ':best';
|
||||
|
||||
const isExcluded = excludeFieldKey === `tt_${entry.mode}_${entry.slug}`;
|
||||
if (isExcluded && includeUnboundedExcludedRange) {
|
||||
segment += ':0:1440';
|
||||
} else if (!isExcluded && entry.timeRange) {
|
||||
segment += `:${entry.timeRange[0]}:${entry.timeRange[1]}`;
|
||||
}
|
||||
|
||||
segments.push(segment);
|
||||
}
|
||||
|
||||
return segments.join('|');
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue