diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx index deab54d531ec4..9f7ff44a2da64 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx @@ -201,6 +201,46 @@ export const PresetReselected: Story = { }, }; +export const PresetNoneSelected: Story = { + args: { + ...PresetsButNoneSelected.args, + onSubmit: (request, owner) => { + // Assert that template_version_preset_id is not present in the request + console.assert( + !("template_version_preset_id" in request), + 'template_version_preset_id should not be present when "None" is selected', + ); + action("onSubmit")(request, owner); + }, + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + // First select a preset to set the field value + await userEvent.click(canvas.getByLabelText("Preset")); + await userEvent.click(canvas.getByText("Preset 1")); + + // Then select "None" to unset the field value + await userEvent.click(canvas.getByLabelText("Preset")); + await userEvent.click(canvas.getByText("None")); + + // Fill in required fields and submit to test the API call + await userEvent.type( + canvas.getByLabelText("Workspace Name"), + "test-workspace", + ); + await userEvent.click(canvas.getByText("Create workspace")); + }, + parameters: { + docs: { + description: { + story: + "This story tests that when 'None' preset is selected, the template_version_preset_id field is not included in the form submission. The story first selects a preset to set the field value, then selects 'None' to unset it, and finally submits the form to verify the API call behavior.", + }, + }, + }, +}; + export const ExternalAuth: Story = { args: { externalAuth: [ diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx index 7a880e8df26b6..c4a5a4e5bd023 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx @@ -369,7 +369,8 @@ export const CreateWorkspacePageView: FC = ({ setSelectedPresetIndex(index); form.setFieldValue( "template_version_preset_id", - option?.value, + // Empty string is equivalent to using None + option?.value === "" ? undefined : option?.value, ); }} placeholder="Select a preset" diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx index 3522d24012445..127f922c816aa 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx @@ -563,6 +563,10 @@ export const CreateWorkspacePageViewExperimental: FC< return; } setSelectedPresetIndex(index); + form.setFieldValue( + "template_version_preset_id", + index === 0 ? undefined : option, + ); }} > pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy