@@ -4,8 +4,9 @@ import { useSelector } from 'react-redux';
4
4
5
5
import { STDCM_TRAIN_ID } from 'applications/stdcm/consts' ;
6
6
import useProjectedTrainsForStdcm from 'applications/stdcm/hooks/useProjectedTrainsForStdcm' ;
7
- import type { StdcmResultsOutput } from 'applications/stdcm/types' ;
8
- import { osrdEditoastApi , type TrackRange } from 'common/api/osrdEditoastApi' ;
7
+ import type { StdcmSimulationOutputs } from 'applications/stdcm/types' ;
8
+ import { hasResults } from 'applications/stdcm/utils/simulationOutputUtils' ;
9
+ import { osrdEditoastApi } from 'common/api/osrdEditoastApi' ;
9
10
import { useOsrdConfSelectors } from 'common/osrdContext' ;
10
11
import ResizableSection from 'common/ResizableSection' ;
11
12
import i18n from 'i18n' ;
@@ -20,16 +21,13 @@ const HANDLE_TAB_RESIZE_HEIGHT = 20;
20
21
const MANCHETTE_HEIGHT_DIFF = 100 ;
21
22
22
23
type StdcmDebugResultsProps = {
23
- pathTrackRanges : TrackRange [ ] ;
24
- simulationOutputs : StdcmResultsOutput ;
24
+ simulationOutputs ?: StdcmSimulationOutputs ;
25
25
} ;
26
26
27
- const StdcmDebugResults = ( {
28
- pathTrackRanges,
29
- simulationOutputs : { pathProperties, results, speedSpaceChartData } ,
30
- } : StdcmDebugResultsProps ) => {
27
+ const StdcmDebugResults = ( { simulationOutputs } : StdcmDebugResultsProps ) => {
31
28
const { getWorkScheduleGroupId } = useOsrdConfSelectors ( ) as StdcmConfSelectors ;
32
29
const workScheduleGroupId = useSelector ( getWorkScheduleGroupId ) ;
30
+ const successfulSimulation = hasResults ( simulationOutputs ) ? simulationOutputs : undefined ;
33
31
34
32
const [ speedSpaceChartContainerHeight , setSpeedSpaceChartContainerHeight ] =
35
33
useState ( SPEED_SPACE_CHART_HEIGHT ) ;
@@ -39,18 +37,21 @@ const StdcmDebugResults = ({
39
37
MANCHETTE_WITH_SPACE_TIME_CHART_DEFAULT_HEIGHT
40
38
) ;
41
39
42
- const projectedData = useProjectedTrainsForStdcm ( results ) ;
40
+ const projectedData = useProjectedTrainsForStdcm ( successfulSimulation ?. results ) ;
43
41
44
42
const { data : workSchedules } = osrdEditoastApi . endpoints . postWorkSchedulesProjectPath . useQuery (
45
43
{
46
44
body : {
47
- path_track_ranges : pathTrackRanges ,
45
+ path_track_ranges : successfulSimulation ?. results . path . track_section_ranges || [ ] ,
48
46
work_schedule_group_id : workScheduleGroupId ! ,
49
47
} ,
50
48
} ,
51
- { skip : ! workScheduleGroupId }
49
+ { skip : ! workScheduleGroupId || ! successfulSimulation }
52
50
) ;
53
51
52
+ if ( ! successfulSimulation ) return null ;
53
+ const { pathProperties, results, speedSpaceChartData } = successfulSimulation ;
54
+
54
55
return (
55
56
< >
56
57
{ projectedData &&
0 commit comments