@@ -101,34 +101,39 @@ const ScenarioParameters = ({
101
101
) ;
102
102
103
103
// Store the reset values for the run template parameters, based on defaultParametersValues and scenario data.
104
- const parametersValuesRef = useRef ( { } ) ;
105
- parametersValuesRef . current = parametersValuesForReset ;
104
+ const parametersValuesRef = useRef ( null ) ;
105
+ function getParametersValuesRef ( ) {
106
+ if ( parametersValuesRef . current === null ) {
107
+ parametersValuesRef . current = parametersValuesForReset ;
108
+ }
109
+ return parametersValuesRef . current ;
110
+ }
106
111
107
112
const generateParametersValuesToRenderFromParametersValuesRef = ( ) => {
108
113
const newParametersValuesToRender = { } ;
109
- for ( const parameterId in parametersValuesRef . current ) {
114
+ for ( const parameterId in getParametersValuesRef ( ) ) {
110
115
if ( parametersMetadata [ parameterId ] ?. varType === DATASET_ID_VARTYPE ) {
111
- const datasetId = parametersValuesRef . current [ parameterId ] ;
116
+ const datasetId = getParametersValuesRef ( ) [ parameterId ] ;
112
117
newParametersValuesToRender [ parameterId ] = FileManagementUtils . buildClientFileDescriptorFromDataset (
113
118
datasets ,
114
119
datasetId
115
120
) ;
116
121
} else {
117
- newParametersValuesToRender [ parameterId ] = parametersValuesRef . current [ parameterId ] ;
122
+ newParametersValuesToRender [ parameterId ] = getParametersValuesRef ( ) [ parameterId ] ;
118
123
}
119
124
}
120
125
return newParametersValuesToRender ;
121
126
} ;
122
127
123
- const setParametersValuesToRenderFromParametersValuesRef = ( ) => {
124
- setParametersValuesToRender ( generateParametersValuesToRenderFromParametersValuesRef ( ) ) ;
125
- } ;
126
-
127
128
// Add scenario parameters data in state
128
129
const [ parametersValuesToRender , setParametersValuesToRender ] = useState (
129
130
generateParametersValuesToRenderFromParametersValuesRef ( )
130
131
) ;
131
132
133
+ const setParametersValuesToRenderFromParametersValuesRef = ( ) => {
134
+ setParametersValuesToRender ( generateParametersValuesToRenderFromParametersValuesRef ( ) ) ;
135
+ } ;
136
+
132
137
// Generate input components for each scenario parameters tab
133
138
for ( const parametersGroupMetadata of parametersGroupsMetadata ) {
134
139
parametersGroupMetadata . tab = ScenarioParametersTabFactory . create (
@@ -154,10 +159,9 @@ const ScenarioParameters = ({
154
159
}
155
160
}
156
161
parametersValuesRef . current = {
157
- ...parametersValuesRef . current ,
162
+ ...getParametersValuesRef ( ) ,
158
163
...newParametersValuesToPatch ,
159
164
} ;
160
-
161
165
await FileManagementUtils . applyPendingOperationsOnFileParameters (
162
166
solution ,
163
167
parametersMetadata ,
@@ -174,14 +178,15 @@ const ScenarioParameters = ({
174
178
} , [ parametersValuesRef ] ) ;
175
179
176
180
useEffect ( ( ) => {
181
+ parametersValuesRef . current = parametersValuesForReset ;
177
182
discardLocalChanges ( ) ;
178
183
// eslint-disable-next-line
179
184
} , [ currentScenario ] ) ;
180
185
181
186
const getParametersForUpdate = ( ) => {
182
187
const parametersData = ScenarioParametersUtils . buildParametersForUpdate (
183
188
solution ,
184
- parametersValuesRef . current ,
189
+ getParametersValuesRef ( ) ,
185
190
runTemplateParametersIds
186
191
) ;
187
192
const additionalParameters = ScenarioParametersUtils . buildAdditionalParameters ( currentScenario , scenarioList ) ;
0 commit comments