diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.test.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.test.tsx index 39bf44ea87ffa..0cabc3e6ed271 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.test.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePage.test.tsx @@ -104,6 +104,7 @@ describe("CreateWorkspacePage", () => { jest.spyOn(API, "getTemplateVersionSchema").mockResolvedValueOnce([ mockParameterSchema({ name: param, + redisplay_value: true, default_source_value: "", }), ]) diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx index e202ab9d60d8b..35b0bead3320b 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx @@ -39,6 +39,7 @@ Parameters.args = { name: "region", default_source_value: "🏈 US Central", description: "Where would you like your workspace to live?", + redisplay_value: true, validation_contains: [ "🏈 US Central", "⚽ Brazil East", @@ -51,18 +52,63 @@ Parameters.args = { default_source_value: "Big", description: "How large should you instance be?", validation_contains: ["Small", "Medium", "Big"], + redisplay_value: true, }), mockParameterSchema({ name: "instance_size", default_source_value: "Big", description: "How large should your instance be?", validation_contains: ["Small", "Medium", "Big"], + redisplay_value: true, }), mockParameterSchema({ name: "disable_docker", description: "Disable Docker?", validation_value_type: "bool", default_source_value: "false", + redisplay_value: true, + }), + ], + createWorkspaceErrors: {}, +} + +export const RedisplayParameters = Template.bind({}) +RedisplayParameters.args = { + templates: [MockTemplate], + selectedTemplate: MockTemplate, + templateSchema: [ + mockParameterSchema({ + name: "region", + default_source_value: "🏈 US Central", + description: "Where would you like your workspace to live?", + redisplay_value: false, + validation_contains: [ + "🏈 US Central", + "⚽ Brazil East", + "💶 EU West", + "🦘 Australia South", + ], + }), + mockParameterSchema({ + name: "instance_size", + default_source_value: "Big", + description: "How large should you instance be?", + validation_contains: ["Small", "Medium", "Big"], + redisplay_value: false, + }), + mockParameterSchema({ + name: "instance_size", + default_source_value: "Big", + description: "How large should your instance be?", + validation_contains: ["Small", "Medium", "Big"], + redisplay_value: true, + }), + mockParameterSchema({ + name: "disable_docker", + description: "Disable Docker?", + validation_value_type: "bool", + default_source_value: "false", + redisplay_value: true, }), ], createWorkspaceErrors: {}, diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx index 4bea8b3009753..d2b8936bf306f 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx @@ -31,7 +31,6 @@ export interface CreateWorkspacePageViewProps { templates?: TypesGen.Template[] selectedTemplate?: TypesGen.Template templateParameters?: TypesGen.TemplateVersionParameter[] - templateSchema?: TypesGen.ParameterSchema[] createWorkspaceErrors: Partial> canCreateForUser?: boolean @@ -239,20 +238,23 @@ export const CreateWorkspacePageView: FC< spacing={4} // Spacing here is diff because the fields here don't have the MUI floating label spacing className={styles.formSectionFields} > - {props.templateSchema.map((schema) => ( - { - setParameterValues({ - ...parameterValues, - [schema.name]: value, - }) - }} - schema={schema} - /> - ))} + {props.templateSchema + // We only want to show schema that have redisplay_value equals true + .filter((schema) => schema.redisplay_value) + .map((schema) => ( + { + setParameterValues({ + ...parameterValues, + [schema.name]: value, + }) + }} + schema={schema} + /> + ))} )}