Files
TREK/client/src/components/Planner/legMode.ts
T

23 lines
833 B
TypeScript

export type LegPoint = {
isPlace: boolean;
leg_transport_mode?: string | null;
incoming_leg_transport_mode?: string | null;
};
/**
* Travel mode of the leg from `origin` to `dest`. The mode is owned by the leg's
* place endpoint: the origin's outgoing override wins when the origin is a place;
* otherwise the destination's incoming override applies (only meaningful when the
* origin is not a place - a booking arrival or the morning hotel); otherwise the
* day default. The incoming value is inert whenever the origin is a place.
*/
export function resolveLegMode(
origin: LegPoint,
dest: LegPoint | undefined,
dayDefault: string,
): string {
if (origin.isPlace) return origin.leg_transport_mode ?? dayDefault;
if (dest?.isPlace) return dest.incoming_leg_transport_mode ?? dayDefault;
return dayDefault;
}