-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathDriverTrainSchedule.tsx
40 lines (35 loc) · 1.13 KB
/
DriverTrainSchedule.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import React, { useEffect, useState } from 'react';
import type { LightRollingStock } from 'common/api/osrdEditoastApi';
import type { Train } from 'reducers/osrdsimulation/types';
import DriverTrainScheduleHeader from './DriverTrainScheduleHeader';
import DriverTrainScheduleStopList from './DriverTrainScheduleStopList';
import { BaseOrEco, type BaseOrEcoType } from './DriverTrainScheduleTypes';
export default function DriverTrainSchedule({
train,
rollingStock,
}: {
train: Train;
rollingStock: LightRollingStock;
}) {
const [baseOrEco, setBaseOrEco] = useState<BaseOrEcoType>(
train.eco ? BaseOrEco.eco : BaseOrEco.base
);
useEffect(() => {
if (baseOrEco === BaseOrEco.eco && !train[baseOrEco]) {
setBaseOrEco(BaseOrEco.base);
} else {
setBaseOrEco(BaseOrEco.eco);
}
}, [train]);
return (
<div className="simulation-driver-train-schedule">
<DriverTrainScheduleHeader
train={train}
rollingStock={rollingStock}
baseOrEco={baseOrEco}
setBaseOrEco={setBaseOrEco}
/>
<DriverTrainScheduleStopList train={train} baseOrEco={baseOrEco} />
</div>
);
}