@@ -110,6 +110,7 @@ const StdcmConfig = ({
110
110
maxSpeed : validateMaxSpeed ( maxSpeed , rollingStock ?. max_speed ) ,
111
111
} ;
112
112
} , [ rollingStock , towedRollingStock , totalMass , totalLength , maxSpeed ] ) ;
113
+ const [ validationMessage , setValidationMessage ] = useState < string | null > ( null ) ;
113
114
114
115
const disabled = isPending || retainedSimulationIndex > - 1 ;
115
116
@@ -173,6 +174,24 @@ const StdcmConfig = ({
173
174
}
174
175
} , [ ] ) ;
175
176
177
+ useEffect ( ( ) => {
178
+ if ( origin . location && destination . location ) {
179
+ setValidationMessage ( "validation de l'itinéraire en cours" ) ;
180
+ } else {
181
+ setValidationMessage ( null ) ;
182
+ }
183
+ } , [ origin , destination ] ) ;
184
+
185
+ useEffect ( ( ) => {
186
+ if ( pathfinding ?. status === 'success' ) {
187
+ setValidationMessage ( "l'itinéraire demandé est valide" ) ;
188
+ const timer = setTimeout ( ( ) => {
189
+ setValidationMessage ( null ) ;
190
+ } , 2000 ) ;
191
+ return ( ) => clearTimeout ( timer ) ;
192
+ }
193
+ } , [ pathfinding ?. status ] ) ;
194
+
176
195
return (
177
196
< div className = "stdcm__body" >
178
197
{ isDebugMode && (
@@ -208,6 +227,13 @@ const StdcmConfig = ({
208
227
} ) }
209
228
ref = { launchButtonRef }
210
229
>
230
+ < div className = "simulation-status-banner" >
231
+ < div className = "banner-content" >
232
+ { validationMessage && (
233
+ < div className = "validation-message" > { validationMessage } </ div >
234
+ ) }
235
+ </ div >
236
+ </ div >
211
237
< Button
212
238
data-testid = "launch-simulation-button"
213
239
className = { cx ( {
0 commit comments