1
1
import { useState } from 'react' ;
2
2
3
- import { cloneDeep } from 'lodash' ;
4
3
import { useTranslation } from 'react-i18next' ;
5
4
import nextId from 'react-id-generator' ;
6
5
import { useSelector } from 'react-redux' ;
7
6
8
7
import type { ManageTrainSchedulePathProperties } from 'applications/operationalStudies/types' ;
9
8
import { STDCM_REQUEST_STATUS , STDCM_TRAIN_ID } from 'applications/stdcm/consts' ;
10
- import formatStdcmConf from 'applications/stdcm/formatStdcmConf' ;
11
9
import type { StdcmRequestStatus , StdcmV2SuccessResponse } from 'applications/stdcm/types' ;
12
10
import { osrdEditoastApi } from 'common/api/osrdEditoastApi' ;
13
- import type {
14
- SimulationReport ,
15
- PostStdcmApiResponse ,
16
- TrainScheduleResult ,
17
- } from 'common/api/osrdEditoastApi' ;
18
- import { useOsrdConfActions , useOsrdConfSelectors } from 'common/osrdContext' ;
11
+ import type { TrainScheduleResult } from 'common/api/osrdEditoastApi' ;
12
+ import { useOsrdConfSelectors } from 'common/osrdContext' ;
19
13
import { useStoreDataForSpeedLimitByTagSelector } from 'common/SpeedLimitByTagSelector/useStoreDataForSpeedLimitByTagSelector' ;
20
14
import createTrain from 'modules/simulationResult/components/SpaceTimeChart/createTrain' ;
21
15
import { CHART_AXES } from 'modules/simulationResult/consts' ;
@@ -25,10 +19,7 @@ import {
25
19
updateConsolidatedSimulation ,
26
20
updateSelectedTrainId ,
27
21
updateSimulation ,
28
- updateSelectedProjection ,
29
22
} from 'reducers/osrdsimulation/actions' ;
30
- import type { Train } from 'reducers/osrdsimulation/types' ;
31
- import { getStdcmV2Activated , getTrainScheduleV2Activated } from 'reducers/user/userSelectors' ;
32
23
import { useAppDispatch } from 'store' ;
33
24
import { castErrorToFailure } from 'utils/error' ;
34
25
@@ -37,7 +28,6 @@ import { checkStdcmConf, formatStdcmPayload } from '../utils/formatStdcmConfV2';
37
28
38
29
const useStdcm = ( ) => {
39
30
const [ stdcmTrainResult , setStdcmTrainResult ] = useState < TrainScheduleResult > ( ) ;
40
- const [ stdcmResults , setStdcmResults ] = useState < PostStdcmApiResponse > ( ) ;
41
31
const [ stdcmV2Response , setStdcmV2Response ] = useState < StdcmV2SuccessResponse > ( ) ;
42
32
const [ currentStdcmRequestStatus , setCurrentStdcmRequestStatus ] = useState < StdcmRequestStatus > (
43
33
STDCM_REQUEST_STATUS . idle
@@ -48,107 +38,29 @@ const useStdcm = () => {
48
38
const { t } = useTranslation ( [ 'translation' , 'stdcm' ] ) ;
49
39
const { getConf, getTimetableID } = useOsrdConfSelectors ( ) ;
50
40
const osrdconf = useSelector ( getConf ) ;
51
- const trainScheduleV2Activated = useSelector ( getTrainScheduleV2Activated ) ;
52
- const stdcmV2Activated = useSelector ( getStdcmV2Activated ) ;
53
41
const timetableId = useSelector ( getTimetableID ) ;
54
42
55
43
const stdcmV2Results = useStdcmResults ( stdcmV2Response , stdcmTrainResult , setPathProperties ) ;
56
44
57
- const [ postStdcm ] = osrdEditoastApi . endpoints . postStdcm . useMutation ( ) ;
58
45
const [ postV2TimetableByIdStdcm ] =
59
46
osrdEditoastApi . endpoints . postV2TimetableByIdStdcm . useMutation ( ) ;
60
- const [ postTrainScheduleResults ] =
61
- osrdEditoastApi . endpoints . postTrainScheduleResults . useMutation ( ) ;
62
-
63
- const [ getTimetable ] = osrdEditoastApi . endpoints . getTimetableById . useLazyQuery ( ) ;
64
47
65
48
const { data : stdcmRollingStock } =
66
49
osrdEditoastApi . endpoints . getLightRollingStockByRollingStockId . useQuery (
67
50
{
68
51
rollingStockId : osrdconf . rollingStockID as number ,
69
52
} ,
70
- { skip : ! osrdconf . rollingStockID && ! trainScheduleV2Activated }
53
+ { skip : ! osrdconf . rollingStockID }
71
54
) ;
72
55
73
- const { updateItinerary } = useOsrdConfActions ( ) ;
74
-
75
56
// https://developer.mozilla.org/en-US/docs/Web/API/AbortController
76
57
const controller = new AbortController ( ) ;
77
58
78
- const { timetableID } = osrdconf ;
79
-
80
59
const { speedLimitByTag } = useStoreDataForSpeedLimitByTagSelector ( ) ;
81
60
82
- const resetResults = ( ) => {
83
- dispatch ( updateSelectedTrainId ( undefined ) ) ;
84
- dispatch ( updateConsolidatedSimulation ( [ ] ) ) ;
85
- dispatch ( updateSimulation ( { trains : [ ] } ) ) ;
86
- setStdcmResults ( undefined ) ;
87
- } ;
88
-
89
- const launchStdcmRequestV1 = async ( ) => {
90
- const payload = formatStdcmConf ( dispatch , t , osrdconf as OsrdStdcmConfState ) ;
91
- if ( payload && timetableID ) {
92
- resetResults ( ) ;
93
- postStdcm ( payload )
94
- . unwrap ( )
95
- . then ( ( result ) => {
96
- setCurrentStdcmRequestStatus ( STDCM_REQUEST_STATUS . success ) ;
97
- setStdcmResults ( result ) ;
98
- dispatch ( updateItinerary ( result . path ) ) ;
99
-
100
- const fakedNewTrain = {
101
- ...cloneDeep ( result . simulation ) ,
102
- id : STDCM_TRAIN_ID ,
103
- isStdcm : true ,
104
- } ;
105
- getTimetable ( { id : timetableID } ) . then ( ( { data : timetable } ) => {
106
- const trainIdsToFetch =
107
- timetable ?. train_schedule_summaries . map ( ( train ) => train . id ) ?? [ ] ;
108
- postTrainScheduleResults ( {
109
- body : {
110
- path_id : result . path . id ,
111
- train_ids : trainIdsToFetch ,
112
- } ,
113
- } )
114
- . unwrap ( )
115
- . then ( ( timetableTrains ) => {
116
- const trains : SimulationReport [ ] = [ ...timetableTrains . simulations , fakedNewTrain ] ;
117
- const consolidatedSimulation = createTrain (
118
- CHART_AXES . SPACE_TIME ,
119
- trains as Train [ ] // TODO: remove Train interface
120
- ) ;
121
- dispatch ( updateConsolidatedSimulation ( consolidatedSimulation ) ) ;
122
- dispatch ( updateSimulation ( { trains } ) ) ;
123
- dispatch ( updateSelectedTrainId ( fakedNewTrain . id ) ) ;
124
-
125
- dispatch (
126
- updateSelectedProjection ( {
127
- id : fakedNewTrain . id ,
128
- path : result . path . id ,
129
- } )
130
- ) ;
131
- } )
132
- . catch ( ( e ) => {
133
- dispatch (
134
- setFailure (
135
- castErrorToFailure ( e , {
136
- name : t ( 'stdcm:stdcmError' ) ,
137
- message : t ( 'translation:common.error' ) ,
138
- } )
139
- )
140
- ) ;
141
- } ) ;
142
- } ) ;
143
- } )
144
- . catch ( ( e ) => {
145
- setCurrentStdcmRequestStatus ( STDCM_REQUEST_STATUS . rejected ) ;
146
- dispatch ( setFailure ( castErrorToFailure ( e , { name : t ( 'stdcm:stdcmError' ) } ) ) ) ;
147
- } ) ;
148
- }
149
- } ;
61
+ const launchStdcmRequest = async ( ) => {
62
+ setCurrentStdcmRequestStatus ( STDCM_REQUEST_STATUS . pending ) ;
150
63
151
- const launchStdcmRequestV2 = async ( ) => {
152
64
const validConfig = checkStdcmConf ( dispatch , t , osrdconf as OsrdStdcmConfState ) ;
153
65
if ( validConfig ) {
154
66
const payload = formatStdcmPayload ( validConfig ) ;
@@ -197,15 +109,6 @@ const useStdcm = () => {
197
109
}
198
110
} ;
199
111
200
- const launchStdcmRequest = async ( ) => {
201
- setCurrentStdcmRequestStatus ( STDCM_REQUEST_STATUS . pending ) ;
202
- if ( trainScheduleV2Activated || stdcmV2Activated ) {
203
- launchStdcmRequestV2 ( ) ;
204
- } else {
205
- launchStdcmRequestV1 ( ) ;
206
- }
207
- } ;
208
-
209
112
const cancelStdcmRequest = ( ) => {
210
113
// when http ready https://axios-http.com/docs/cancellation
211
114
@@ -221,7 +124,6 @@ const useStdcm = () => {
221
124
const isPending = currentStdcmRequestStatus === STDCM_REQUEST_STATUS . pending ;
222
125
223
126
return {
224
- stdcmResults,
225
127
stdcmV2Results,
226
128
launchStdcmRequest,
227
129
currentStdcmRequestStatus,
0 commit comments