@@ -88,8 +88,7 @@ const Models: React.FC = () => {
8888 queryKey : [ "grid-simulation" , gridId ] ,
8989 queryFn : ( ) => getGridSimulationResult ( gridId ! ) ,
9090 enabled : gridId !== undefined ,
91- retry : ( _count , error ) => error instanceof ResultIsPending ,
92- retryDelay : ( ) => 2000 ,
91+ refetchInterval : ( query ) => ( query . state . data ?. status === "pending" ? 2000 : false ) ,
9392 } ) ;
9493
9594 useEffect ( ( ) => {
@@ -106,10 +105,10 @@ const Models: React.FC = () => {
106105 } , [ simulationId , simulationIsLoading ] ) ;
107106
108107 useEffect ( ( ) => {
109- if ( gridId && ! gridIsLoading ) {
108+ if ( gridId && ( gridResult ?. status === "done" || gridResultError ) ) {
110109 simulationHistory . finalizeEntry ( gridId ) ;
111110 }
112- } , [ gridId , gridIsLoading ] ) ;
111+ } , [ gridId , gridResult ?. status , gridResultError ] ) ;
113112
114113 useEffect ( ( ) => {
115114 if ( simulationResults && simulationResults . status !== "error" && models . length > 0 ) {
@@ -133,14 +132,14 @@ const Models: React.FC = () => {
133132 }
134133 } , [ simulationResults , models ] ) ;
135134
136- useEffect ( ( ) => {
137- if ( gridResult && models . length > 0 ) {
138- const firstSim = gridResult . simulations [ 0 ] ;
139- if ( ! firstSim ) return ;
135+ const gridInput = gridResult ?. simulations [ 0 ] ?. input ;
136+ const gridAxes = gridResult ?. axes ;
140137
138+ useEffect ( ( ) => {
139+ if ( gridInput && gridAxes && models . length > 0 ) {
141140 const loadedModels : ModelConfig [ ] = [ ] ;
142141
143- firstSim . input . models . forEach ( ( modelInput ) => {
142+ gridInput . models . forEach ( ( modelInput ) => {
144143 const model = models . find ( ( m ) => m . modelId === modelInput . modelId ) ;
145144 if ( model ) {
146145 loadedModels . push ( model ) ;
@@ -152,16 +151,16 @@ const Models: React.FC = () => {
152151 }
153152 } ) ;
154153
155- useConcentrationsStore . getState ( ) . reset ( firstSim . input . concentrations ) ;
156- useConditionsStore . getState ( ) . reset ( firstSim . input . conditions ) ;
154+ useConcentrationsStore . getState ( ) . reset ( gridInput . concentrations ) ;
155+ useConditionsStore . getState ( ) . reset ( gridInput . conditions ) ;
157156
158157 useGridRangeStore . getState ( ) . reset ( {
159- axes : gridResult . axes ,
158+ axes : gridAxes ,
160159 } ) ;
161160
162161 setSelectedModels ( loadedModels ) ;
163162 }
164- } , [ gridResult , models ] ) ;
163+ } , [ gridInput , gridAxes , models , gridId ] ) ;
165164
166165 const isGridMode = gridId !== undefined ;
167166
0 commit comments