Skip to content

Commit 1adabbb

Browse files
committed
front: fix edition of effort curve
1 parent 630fdc7 commit 1adabbb

File tree

2 files changed

+50
-37
lines changed

2 files changed

+50
-37
lines changed

front/src/modules/rollingStock/components/RollingStockEditor/CurveSpreadsheet.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import formatCurve from './formatSpreadSheetCurve';
1111
type CurveSpreadsheetProps = {
1212
selectedCurve: ConditionalEffortCurveForm;
1313
selectedCurveIndex: number;
14+
selectedTractionModeCurves: ConditionalEffortCurveForm[];
1415
effortCurves: EffortCurveForms | null;
1516
setEffortCurves: Dispatch<SetStateAction<EffortCurveForms | null>>;
1617
selectedTractionMode: string | null;
@@ -20,6 +21,7 @@ type CurveSpreadsheetProps = {
2021
const CurveSpreadsheet = ({
2122
selectedCurve,
2223
selectedCurveIndex,
24+
selectedTractionModeCurves,
2325
effortCurves,
2426
setEffortCurves,
2527
selectedTractionMode,
@@ -51,7 +53,6 @@ const CurveSpreadsheet = ({
5153
const updateRollingStockCurve = (e: Matrix<{ value: string }>) => {
5254
if (!selectedTractionMode || !effortCurves) return;
5355
const formattedCurve = formatCurve(e);
54-
const selectedTractionModeCurves = effortCurves[selectedTractionMode].curves;
5556

5657
const updatedSelectedCurve = {
5758
...selectedCurve,

front/src/modules/rollingStock/components/RollingStockEditor/RollingStockEditorCurves.tsx

+48-36
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ const RollingStockEditorCurves = ({
7979
}
8080
};
8181

82-
const { selectedCurveIndex, selectedCurve } = useMemo(() => {
82+
const { selectedCurveIndex, selectedCurve, selectedTractionModeCurves } = useMemo(() => {
8383
if (!selectedTractionMode || !effortCurves || !effortCurves[selectedTractionMode])
84-
return { selectedCurveIndex: null, selectedCurve: null };
84+
return { selectedCurveIndex: null, selectedCurve: null, selectedTractionModeCurves: null };
8585

8686
const isElectric = selectedTractionMode !== THERMAL_TRACTION_IDENTIFIER;
8787
const modeCurves = effortCurves[selectedTractionMode].curves.filter(
@@ -94,10 +94,18 @@ const RollingStockEditorCurves = ({
9494
curve.cond.electrical_profile_level === selectedParams.electricalProfile &&
9595
curve.cond.power_restriction_code === selectedParams.powerRestriction
9696
);
97-
return { selectedCurveIndex: index, selectedCurve: modeCurves[index] };
97+
return {
98+
selectedCurveIndex: index,
99+
selectedCurve: modeCurves[index],
100+
selectedTractionModeCurves: modeCurves,
101+
};
98102
}
99103

100-
return { selectedCurveIndex: 0, selectedCurve: modeCurves[0] };
104+
return {
105+
selectedCurveIndex: 0,
106+
selectedCurve: modeCurves[0],
107+
selectedTractionModeCurves: modeCurves,
108+
};
101109
}, [effortCurves, selectedTractionMode, selectedParams]);
102110

103111
const [hoveredRollingstockParam, setHoveredRollingstockParam] = useState<string | null>();
@@ -200,39 +208,43 @@ const RollingStockEditorCurves = ({
200208
}}
201209
selectedParamsSetter={updateSelectedParams}
202210
/>
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 !== null && (
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>
233246
</div>
234-
</div>
235-
)}
247+
)}
236248
</>
237249
);
238250
};

0 commit comments

Comments
 (0)