@@ -10,6 +10,7 @@ import { MANAGE_TRAIN_SCHEDULE_TYPES } from 'applications/operationalStudies/con
10
10
import type { Conflict , InfraState } from 'common/api/osrdEditoastApi' ;
11
11
import i18n from 'i18n' ;
12
12
import ConflictsList from 'modules/conflict/components/ConflictsList' ;
13
+ import { selectTrainToEdit } from 'reducers/osrdconf/operationalStudiesConf' ;
13
14
import type {
14
15
PacedTrainId ,
15
16
TimetableItemId ,
@@ -40,9 +41,9 @@ type TimetableProps = {
40
41
infraState : InfraState ;
41
42
conflicts ?: Conflict [ ] ;
42
43
upsertTrainSchedules : ( trainSchedules : TrainScheduleResultWithTrainId [ ] ) => void ;
43
- setTrainIdToEdit : ( trainId ?: TimetableItemId ) => void ;
44
+ setItemIdToEdit : ( trainId ?: TimetableItemId ) => void ;
44
45
removeTrains : ( trainIds : TimetableItemId [ ] ) => void ;
45
- trainIdToEdit ?: TimetableItemId ;
46
+ itemIdToEdit ?: TimetableItemId ;
46
47
trainSchedules ?: TrainScheduleResultWithTrainId [ ] ;
47
48
trainSchedulesWithDetails : TrainScheduleWithDetails [ ] ;
48
49
dtoImport : ( ) => void ;
@@ -56,8 +57,8 @@ const Timetable = ({
56
57
conflicts,
57
58
upsertTrainSchedules,
58
59
removeTrains,
59
- setTrainIdToEdit ,
60
- trainIdToEdit ,
60
+ setItemIdToEdit ,
61
+ itemIdToEdit ,
61
62
trainSchedules = [ ] ,
62
63
trainSchedulesWithDetails,
63
64
dtoImport,
@@ -137,10 +138,17 @@ const Timetable = ({
137
138
} ) ;
138
139
} , [ currentDepartureDates ] ) ;
139
140
141
+ const selectTimeTableItemToEdit = ( itemToEdit : TimetableItemResult ) => {
142
+ dispatch ( selectTrainToEdit ( itemToEdit ) ) ;
143
+ // TODO Paced train : Adapt this to handle paced trains in issue https://github.com/OpenRailAssociation/osrd/issues/10615
144
+ setItemIdToEdit ( itemToEdit . id ) ;
145
+ setDisplayTrainScheduleManagement ( MANAGE_TRAIN_SCHEDULE_TYPES . edit ) ;
146
+ } ;
147
+
140
148
// TODO PACED TRAIN : Remove this after adapting the code to handle paced trains in issue
141
149
useEffect ( ( ) => {
142
150
setTimetableItems (
143
- showPacedTrains
151
+ showPacedTrains && trainSchedulesWithDetails . length > 0
144
152
? [
145
153
...trainSchedulesWithDetails ,
146
154
{
@@ -154,7 +162,7 @@ const Timetable = ({
154
162
]
155
163
: trainSchedulesWithDetails
156
164
) ;
157
- } , [ showPacedTrains ] ) ;
165
+ } , [ showPacedTrains , trainSchedulesWithDetails ] ) ;
158
166
159
167
return (
160
168
< div className = "scenario-timetable" >
@@ -217,11 +225,10 @@ const Timetable = ({
217
225
handleSelectTrain = { handleSelectTimetableItem }
218
226
train = { timetableItem as TrainScheduleWithDetails }
219
227
isSelected = { infraState === 'CACHED' && selectedTrainId === timetableItem . id }
220
- isModified = { timetableItem . id === trainIdToEdit }
221
- setDisplayTrainScheduleManagement = { setDisplayTrainScheduleManagement }
228
+ isModified = { timetableItem . id === itemIdToEdit }
222
229
upsertTrainSchedules = { upsertTrainSchedules }
223
- setTrainIdToEdit = { setTrainIdToEdit }
224
230
removeTrains = { removeAndUnselectTrains }
231
+ selectTrainToEdit = { selectTimeTableItemToEdit }
225
232
projectionPathIsUsed = {
226
233
infraState === 'CACHED' && trainIdUsedForProjection === timetableItem . id
227
234
}
@@ -231,10 +238,9 @@ const Timetable = ({
231
238
< PacedTrainItem
232
239
pacedTrain = { timetableItem as PacedTrainWithResult }
233
240
isInSelection = { selectedTimetableItemIds . pacedTrainIds . includes ( timetableItem . id ) }
234
- setPacedTrainIdToEdit = { setTrainIdToEdit }
235
- setDisplayTrainScheduleManagement = { setDisplayTrainScheduleManagement }
241
+ selectPacedTrainToEdit = { selectTimeTableItemToEdit }
236
242
handleSelectPacedTrain = { handleSelectTimetableItem }
237
- isOnEdit = { timetableItem . id === trainIdToEdit }
243
+ isOnEdit = { timetableItem . id === itemIdToEdit }
238
244
isProjectionPathUsed = { false }
239
245
/>
240
246
) }
0 commit comments