@@ -79,9 +79,9 @@ const RollingStockEditorCurves = ({
79
79
}
80
80
} ;
81
81
82
- const { selectedCurveIndex, selectedCurve } = useMemo ( ( ) => {
82
+ const { selectedCurveIndex, selectedCurve, selectedTractionModeCurves } = useMemo ( ( ) => {
83
83
if ( ! selectedTractionMode || ! effortCurves || ! effortCurves [ selectedTractionMode ] )
84
- return { selectedCurveIndex : null , selectedCurve : null } ;
84
+ return { selectedCurveIndex : null , selectedCurve : null , selectedTractionModeCurves : null } ;
85
85
86
86
const isElectric = selectedTractionMode !== THERMAL_TRACTION_IDENTIFIER ;
87
87
const modeCurves = effortCurves [ selectedTractionMode ] . curves . filter (
@@ -94,10 +94,18 @@ const RollingStockEditorCurves = ({
94
94
curve . cond . electrical_profile_level === selectedParams . electricalProfile &&
95
95
curve . cond . power_restriction_code === selectedParams . powerRestriction
96
96
) ;
97
- return { selectedCurveIndex : index , selectedCurve : modeCurves [ index ] } ;
97
+ return {
98
+ selectedCurveIndex : index ,
99
+ selectedCurve : modeCurves [ index ] ,
100
+ selectedTractionModeCurves : modeCurves ,
101
+ } ;
98
102
}
99
103
100
- return { selectedCurveIndex : 0 , selectedCurve : modeCurves [ 0 ] } ;
104
+ return {
105
+ selectedCurveIndex : 0 ,
106
+ selectedCurve : modeCurves [ 0 ] ,
107
+ selectedTractionModeCurves : modeCurves ,
108
+ } ;
101
109
} , [ effortCurves , selectedTractionMode , selectedParams ] ) ;
102
110
103
111
const [ hoveredRollingstockParam , setHoveredRollingstockParam ] = useState < string | null > ( ) ;
@@ -200,39 +208,43 @@ const RollingStockEditorCurves = ({
200
208
} }
201
209
selectedParamsSetter = { updateSelectedParams }
202
210
/>
203
- { selectedTractionMode && selectedCurve && selectedCurveIndex !== null && (
204
- < div className = "rollingstock-editor-curves d-flex p-3" >
205
- < CurveSpreadsheet
206
- selectedCurve = { selectedCurve }
207
- selectedCurveIndex = { selectedCurveIndex }
208
- effortCurves = { effortCurves }
209
- selectedTractionMode = { selectedTractionMode }
210
- setEffortCurves = { setEffortCurves }
211
- isDefaultCurve = {
212
- selectedParams . comfortLevel === STANDARD_COMFORT_LEVEL &&
213
- selectedParams . electricalProfile === null &&
214
- selectedParams . powerRestriction === null
215
- }
216
- />
217
- < div className = "rollingstock-card-body" >
218
- { ! isEmpty ( curvesToDisplay [ selectedTractionMode ] ?. curves ) && (
219
- < RollingStockCurve
220
- curvesComfortList = { [ selectedParams . comfortLevel ] }
221
- data = { curvesToDisplay }
222
- isOnEditionMode
223
- showPowerRestriction = { showPowerRestriction }
224
- hoveredElectricalParam = { hoveredRollingstockParam }
225
- selectedElectricalParam = {
226
- showPowerRestriction
227
- ? selectedParams . powerRestriction
228
- : selectedParams . electricalProfile
229
- }
230
- />
231
- ) }
232
- { children }
211
+ { selectedTractionMode &&
212
+ selectedCurve &&
213
+ selectedCurveIndex !== null &&
214
+ selectedTractionModeCurves && (
215
+ < div className = "rollingstock-editor-curves d-flex p-3" >
216
+ < CurveSpreadsheet
217
+ selectedCurve = { selectedCurve }
218
+ selectedCurveIndex = { selectedCurveIndex }
219
+ selectedTractionModeCurves = { selectedTractionModeCurves }
220
+ effortCurves = { effortCurves }
221
+ selectedTractionMode = { selectedTractionMode }
222
+ setEffortCurves = { setEffortCurves }
223
+ isDefaultCurve = {
224
+ selectedParams . comfortLevel === STANDARD_COMFORT_LEVEL &&
225
+ selectedParams . electricalProfile === null &&
226
+ selectedParams . powerRestriction === null
227
+ }
228
+ />
229
+ < div className = "rollingstock-card-body" >
230
+ { ! isEmpty ( curvesToDisplay [ selectedTractionMode ] ?. curves ) && (
231
+ < RollingStockCurve
232
+ curvesComfortList = { [ selectedParams . comfortLevel ] }
233
+ data = { curvesToDisplay }
234
+ isOnEditionMode
235
+ showPowerRestriction = { showPowerRestriction }
236
+ hoveredElectricalParam = { hoveredRollingstockParam }
237
+ selectedElectricalParam = {
238
+ showPowerRestriction
239
+ ? selectedParams . powerRestriction
240
+ : selectedParams . electricalProfile
241
+ }
242
+ />
243
+ ) }
244
+ { children }
245
+ </ div >
233
246
</ div >
234
- </ div >
235
- ) }
247
+ ) }
236
248
</ >
237
249
) ;
238
250
} ;
0 commit comments