-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathImportTrainSchedule.tsx
59 lines (55 loc) · 1.7 KB
/
ImportTrainSchedule.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import React, { useEffect, useState } from 'react';
import {
ImportTrainScheduleConfig,
ImportTrainScheduleTrainsList,
} from 'modules/trainschedule/components/ImportTrainSchedule';
import Loader from 'common/Loader';
import { TrainSchedule } from 'applications/operationalStudies/types';
import { enhancedEditoastApi } from 'common/api/enhancedEditoastApi';
import { useDispatch } from 'react-redux';
import { useTranslation } from 'react-i18next';
import { setFailure } from 'reducers/main';
export default function ImportTrainSchedule({
infraId,
timetableId,
}: {
infraId: number;
timetableId: number;
}) {
const dispatch = useDispatch();
const { t } = useTranslation(['rollingstock']);
const [trainsList, setTrainsList] = useState<TrainSchedule[]>([]);
const [isLoading, setIsLoading] = useState(false);
const { data: { results: rollingStocks } = { results: [] }, isError } =
enhancedEditoastApi.useGetLightRollingStockQuery({
pageSize: 1000,
});
useEffect(() => {
if (isError) {
dispatch(
setFailure({
name: t('rollingstock:errorMessages.unableToRetrieveRollingStock'),
message: t('rollingstock:errorMessages.unableToRetrieveRollingStockMessage'),
})
);
}
}, [isError]);
return rollingStocks ? (
<main className="import-train-schedule">
<ImportTrainScheduleConfig
setIsLoading={setIsLoading}
setTrainsList={setTrainsList}
infraId={infraId}
/>
<ImportTrainScheduleTrainsList
infraId={infraId}
isLoading={isLoading}
rollingStocks={rollingStocks}
timetableId={timetableId}
trainsList={trainsList}
/>
</main>
) : (
<Loader />
);
}