-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathOpenDataImport.js
49 lines (44 loc) · 1.54 KB
/
OpenDataImport.js
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
import React, { useEffect, useState } from 'react';
import OpenDataImportConfig from 'applications/opendata/views/OpenDataImportConfig';
import OpenDataTrainsList from 'applications/opendata/views/OpenDataTrainsList';
import OpenDataGlobalSettings from 'applications/opendata/views/OpenDataGlobalSettings';
import { get } from 'common/requests';
import Loader from 'common/Loader';
const ROLLING_STOCK_URL = '/light_rolling_stock/';
export default function OpenDataImport() {
const [config, setConfig] = useState();
const [rollingStockDB, setRollingStockDB] = useState();
const [mustUpdateTimetable, setMustUpdateTimetable] = useState(true);
async function getRollingStockDB() {
try {
const data = await get(ROLLING_STOCK_URL, { page_size: 1000 });
setRollingStockDB(data.results);
} catch (error) {
console.log(error);
}
}
useEffect(() => {
if (!rollingStockDB) {
getRollingStockDB();
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return rollingStockDB ? (
<main className="osrd-config-mastcontainer mastcontainer opendata-import">
<div className="p-3">
<OpenDataImportConfig setConfig={setConfig} />
<OpenDataGlobalSettings
mustUpdateTimetable={mustUpdateTimetable}
setMustUpdateTimetable={setMustUpdateTimetable}
/>
<OpenDataTrainsList
config={config}
rollingStockDB={rollingStockDB}
setMustUpdateTimetable={setMustUpdateTimetable}
/>
</div>
</main>
) : (
<Loader />
);
}