mirror of
https://github.com/HSLdevcom/digitransit-ui
synced 2025-07-29 01:05:14 +02:00
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { DateTime } from 'luxon';
|
|
import { DATE_FORMAT } from '../constants';
|
|
|
|
const populateData = (params, match, noOfWeeks) => {
|
|
const { query } = match.location;
|
|
|
|
const startOfWeek = DateTime.now().startOf('week');
|
|
const date = query.serviceDay
|
|
? DateTime.fromFormat(query.serviceDay, DATE_FORMAT)
|
|
: null;
|
|
const serviceDay =
|
|
date && date.isValid && date.startOf('week') >= startOfWeek
|
|
? DateTime.fromFormat(query.serviceDay, DATE_FORMAT)
|
|
: DateTime.now();
|
|
|
|
let day = startOfWeek;
|
|
|
|
const weeks = {};
|
|
for (let j = 0; j < noOfWeeks; j++) {
|
|
for (let i = 0; i < 7; i++) {
|
|
weeks[`wk${j + 1}day${i + 1}`] = day.toFormat(DATE_FORMAT);
|
|
day = day.plus({ days: 1 });
|
|
}
|
|
}
|
|
|
|
return {
|
|
...params,
|
|
serviceDate: serviceDay.toFormat(DATE_FORMAT),
|
|
date: DateTime.now().toFormat(DATE_FORMAT),
|
|
showTenWeeks: noOfWeeks === 10,
|
|
...weeks,
|
|
};
|
|
};
|
|
|
|
export function prepareScheduleParamsWithFiveWeeks(params, match) {
|
|
return populateData(params, match, 5);
|
|
}
|
|
|
|
export function prepareScheduleParamsWithTenWeeks(params, match) {
|
|
return populateData(params, match, 10);
|
|
}
|