diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx index 6f0647c9f28e8..a972cefd2bafe 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx @@ -159,6 +159,25 @@ export const PresetSelected: Story = { }, }; +export const PresetReselected: Story = { + args: PresetsButNoneSelected.args, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + // First selection of Preset 1 + await userEvent.click(canvas.getByLabelText("Preset")); + await userEvent.click( + canvas.getByText("Preset 1", { selector: ".MuiMenuItem-root" }), + ); + + // Reselect the same preset + await userEvent.click(canvas.getByLabelText("Preset")); + await userEvent.click( + canvas.getByText("Preset 1", { selector: ".MuiMenuItem-root" }), + ); + }, +}; + export const ExternalAuth: Story = { args: { externalAuth: [ diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx index 8a1d380a16191..34917fe14b058 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx @@ -286,11 +286,13 @@ export const CreateWorkspacePageView: FC = ({ label="Preset" options={presetOptions} onSelect={(option) => { - setSelectedPresetIndex( - presetOptions.findIndex( - (preset) => preset.value === option?.value, - ), + const index = presetOptions.findIndex( + (preset) => preset.value === option?.value, ); + if (index === -1) { + return; + } + setSelectedPresetIndex(index); }} placeholder="Select a preset" selectedOption={presetOptions[selectedPresetIndex]}