diff --git a/front/src/applications/operationalStudies/components/SimulationResults/SpaceTimeChart/withOSRDData.tsx b/front/src/applications/operationalStudies/components/SimulationResults/SpaceTimeChart/withOSRDData.tsx index 83732a863ab..a284a937557 100644 --- a/front/src/applications/operationalStudies/components/SimulationResults/SpaceTimeChart/withOSRDData.tsx +++ b/front/src/applications/operationalStudies/components/SimulationResults/SpaceTimeChart/withOSRDData.tsx @@ -1,4 +1,4 @@ -import React, { ComponentType } from 'react'; +import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { @@ -25,12 +25,7 @@ import { time2datetime, datetime2Isostring, } from 'utils/timeManipulation'; -import { - AllowancesSetting, - Chart, - Train, - TrainsWithArrivalAndDepartureTimes, -} from 'reducers/osrdsimulation/types'; +import { Chart, Train, TrainsWithArrivalAndDepartureTimes } from 'reducers/osrdsimulation/types'; import { TimeString } from 'common/types'; import SpaceTimeChart, { SpaceTimeChartProps } from './SpaceTimeChart'; import { @@ -41,39 +36,6 @@ import { DispatchUpdateTimePositionValues, } from './types'; -/** - * Stdcm will automatically show ecoBlocks if exisiting. This function takes a component and returns another component that will set the forcedEcoAllowancesSettings prop on its children - * @param {*} Component - * @returns RFC with OSRD Data. SignalSwitch - */ -function withForcedEcoAllowanceSettings( - Component: ComponentType -): React.ComponentType { - return (props: T) => { - const { simulation } = props; - const forcedEcoAllowancesSettings: AllowancesSetting[] = []; - // eslint-disable-next-line react/prop-types - simulation?.trains?.forEach((train) => { - forcedEcoAllowancesSettings[train.id] = train.eco?.route_aspects - ? { - base: true, - baseBlocks: false, - eco: true, - ecoBlocks: true, - } - : { - base: true, - baseBlocks: true, - eco: false, - ecoBlocks: false, - }; - }); - - // Render the original component passing all props and forcedEcoAllowancesSettings as props to it - return ; - }; -} - /** * HOC to provide store data * @param {RFC} Component @@ -134,7 +96,6 @@ function withOSRDData( return ( ( simulation={simulation} simulationIsPlaying={isPlaying} timePosition={timePosition} + {...props} /> ); }; } -export const ForcedEcoSpaceTimeChart: React.FC = (props) => { - const WithOSRDData = withOSRDData(SpaceTimeChart); - const WithForcedEcoAllowanceSettings = withForcedEcoAllowanceSettings(WithOSRDData); - return ; -}; - const OSRDSpaceTimeChart = withOSRDData(SpaceTimeChart); export default OSRDSpaceTimeChart; diff --git a/front/src/applications/stdcm/views/OSRDStdcmResults.tsx b/front/src/applications/stdcm/views/OSRDStdcmResults.tsx index 1309ed7a67b..51da4c28a66 100644 --- a/front/src/applications/stdcm/views/OSRDStdcmResults.tsx +++ b/front/src/applications/stdcm/views/OSRDStdcmResults.tsx @@ -1,7 +1,11 @@ import React, { useState } from 'react'; -import { ForcedEcoSpaceTimeChart } from 'applications/operationalStudies/components/SimulationResults/SpaceTimeChart/withOSRDData'; +import SpaceTimeChart from 'applications/operationalStudies/components/SimulationResults/SpaceTimeChart/withOSRDData'; import SpeedSpaceChart from 'applications/operationalStudies/components/SimulationResults/SpeedSpaceChart/withOSRDData'; import { useTranslation } from 'react-i18next'; +import { useSelector } from 'react-redux'; +import { getPresentSimulation } from 'reducers/osrdsimulation/selectors'; +import { AllowancesSettings } from 'reducers/osrdsimulation/types'; +import { SimulationReport } from 'common/api/osrdEditoastApi'; const OSRDStcdmResults = () => { const { t } = useTranslation(['translation', 'operationalStudies/manageTrainSchedule']); @@ -10,6 +14,25 @@ const OSRDStcdmResults = () => { const [spaceTimeChartHeight, setSpaceTimeChartHeight] = useState(450); const [speedSpaceChartHeight, setSpeedSpaceChartHeight] = useState(450); + const simulation = useSelector(getPresentSimulation); + // by default, we show the ecoblocks for stdcm (if existing) + const allowancesSettings = (simulation.trains as SimulationReport[]).reduce((acc, train) => { + acc[train.id] = train.eco?.route_aspects + ? { + base: true, + baseBlocks: false, + eco: true, + ecoBlocks: true, + } + : { + base: true, + baseBlocks: true, + eco: false, + ecoBlocks: false, + }; + return acc; + }, {} as AllowancesSettings); + return (
@@ -22,7 +45,8 @@ const OSRDStcdmResults = () => { className="spacetimechart-container mt-2" style={{ height: `${spaceTimeChartHeight}px` }} > -