fix(site/src/pages/TemplateBuilder): use variable defaults as field values, not just placeholders (#27032)

Variables with defaults showed the default as placeholder text in an
empty field. If the user did not type anything, an empty value was sent
instead of the default. Now the default pre-populates the field value so
it is visible and editable.

Fixes both `BaseTemplateParametersStep` and `ModuleSettingsStep` by
falling back to `defaultPlaceholder(v.default)` instead of `""` when no
user value exists.

Fixes DEVEX-584

> [!NOTE]
> This PR was authored by Coder Agents on behalf of @jeremyruppel.
This commit is contained in:
Jeremy Ruppel
2026-07-06 19:28:55 -04:00
committed by GitHub
parent 1eb5d579b0
commit 8afdf0f7e1
2 changed files with 10 additions and 3 deletions
@@ -109,7 +109,11 @@ export const BaseTemplateParametersStep: FC<
};
const fields: ConfigurationFieldDefinition[] = variables.map((v) =>
variableToField(v, values[v.name] ?? "", handleChange),
variableToField(
v,
values[v.name] ?? defaultPlaceholder(v.default) ?? "",
handleChange,
),
);
return (
@@ -135,8 +135,11 @@ export const ModuleSettingsStep: FC<ModuleSettingsStepProps> = ({
const vars = moduleVariables[mod.id] ?? {};
const toField = (v: TemplateBuilderModuleVariable) =>
variableToField(mod.id, v, vars[v.name] ?? "", (name, val) =>
handleChange(mod.id, name, val),
variableToField(
mod.id,
v,
vars[v.name] ?? defaultPlaceholder(v.default) ?? "",
(name, val) => handleChange(mod.id, name, val),
);
const requiredVars = configurableVars.filter((v) => v.required);