diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx
index 1527e084503d4..c2b6807a5833f 100644
--- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx
+++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx
@@ -608,7 +608,15 @@ export const CreateWorkspacePageViewExperimental: FC<
{parameters.map((parameter, index) => {
- const parameterField = `rich_parameter_values.${index}`;
+ const currentParameterValueIndex =
+ form.values.rich_parameter_values?.findIndex(
+ (p) => p.name === parameter.name,
+ ) ?? -1;
+ const parameterFieldIndex =
+ currentParameterValueIndex !== -1
+ ? currentParameterValueIndex
+ : index;
+ const parameterField = `rich_parameter_values.${parameterFieldIndex}`;
const isPresetParameter = presetParameterNames.includes(
parameter.name,
);
@@ -629,8 +637,13 @@ export const CreateWorkspacePageViewExperimental: FC<
return null;
}
+ // Get the form value by parameter name to ensure correct value mapping
const formValue =
- form.values?.rich_parameter_values?.[index]?.value || "";
+ currentParameterValueIndex !== -1
+ ? form.values?.rich_parameter_values?.[
+ currentParameterValueIndex
+ ]?.value || ""
+ : "";
return (
= ({
className="min-w-60 max-w-3xl"
value={coderGroups}
onChange={setCoderGroups}
- options={groups.map((group) => ({
- label: group.display_name || group.name,
- value: group.id,
- }))}
+ options={groups
+ .filter((group) => !isEveryoneGroup(group))
+ .map((group) => ({
+ label: group.display_name || group.name,
+ value: group.id,
+ }))}
hidePlaceholderWhenSelected
placeholder="Select group"
emptyIndicator={
- All groups selected
+ No more groups to select
}
/>