Skip to content

Commit 14f0844

Browse files
authored
fix: send all params instead of only touched params (#20740)
resolves #20257 Ensure all parameters are sent in the web socket request instead of only touched parameters. Using touched parameters is irrelevant for the workspace parameters page in workspace settings because parameters that appear here have already been chosen by the user during workspace creation. So all parameters should be sent in the web socket request whether have been touched in the form or not.
1 parent a3c851c commit 14f0844

File tree

1 file changed

+5
-23
lines changed

1 file changed

+5
-23
lines changed

site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPageViewExperimental.tsx

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,6 @@ export const WorkspaceParametersPageViewExperimental: FC<
4848
onCancel,
4949
templateVersionId,
5050
}) => {
51-
const autofillByName = Object.fromEntries(
52-
autofillParameters.map((param) => [param.name, param]),
53-
);
54-
const initialTouched = parameters.reduce(
55-
(touched, parameter) => {
56-
if (autofillByName[parameter.name] !== undefined) {
57-
touched[parameter.name] = true;
58-
}
59-
return touched;
60-
},
61-
{} as Record<string, boolean>,
62-
);
6351
const form = useFormik({
6452
onSubmit,
6553
initialValues: {
@@ -68,7 +56,6 @@ export const WorkspaceParametersPageViewExperimental: FC<
6856
autofillParameters,
6957
),
7058
},
71-
initialTouched,
7259
validationSchema: useValidationSchemaForDynamicParameters(parameters),
7360
enableReinitialize: false,
7461
validateOnChange: true,
@@ -89,28 +76,23 @@ export const WorkspaceParametersPageViewExperimental: FC<
8976
name: parameter.name,
9077
value,
9178
});
92-
form.setFieldTouched(parameter.name, true);
9379
sendDynamicParamsRequest(parameter, value);
9480
};
9581

96-
// Send the changed parameter and all touched parameters to the websocket
9782
const sendDynamicParamsRequest = (
9883
parameter: PreviewParameter,
9984
value: string,
10085
) => {
10186
const formInputs: Record<string, string> = {};
102-
formInputs[parameter.name] = value;
10387
const parameters = form.values.rich_parameter_values ?? [];
104-
105-
for (const [fieldName, isTouched] of Object.entries(form.touched)) {
106-
if (isTouched && fieldName !== parameter.name) {
107-
const param = parameters.find((p) => p.name === fieldName);
108-
if (param?.value) {
109-
formInputs[fieldName] = param.value;
110-
}
88+
for (const param of parameters) {
89+
if (param?.name && param?.value) {
90+
formInputs[param.name] = param.value;
11191
}
11292
}
11393

94+
formInputs[parameter.name] = value;
95+
11496
sendMessage(formInputs);
11597
};
11698

0 commit comments

Comments
 (0)