From a1fa5c8c969f036123f01eaa221efacf26634834 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Fri, 17 Oct 2025 11:24:37 +0100 Subject: [PATCH] fix(site): disable task prompt submit button when prompt empty (#20357) Disable the submit button by default in the task creation form, it is only enabled once the prompt field is non empty --- .../tasks/TaskPrompt/TaskPrompt.stories.tsx | 31 +++++++++++++++++++ .../modules/tasks/TaskPrompt/TaskPrompt.tsx | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx b/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx index 918df28d61..453017dfa8 100644 --- a/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx +++ b/site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx @@ -72,6 +72,37 @@ export const ReadOnlyPresetPrompt: Story = { }, }; +export const SubmitEnabledWhenPromptNotEmpty: Story = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + const prompt = await canvas.findByLabelText(/prompt/i); + await userEvent.type(prompt, MockNewTaskData.prompt); + + const submitButton = canvas.getByRole("button", { name: /run task/i }); + expect(submitButton).toBeEnabled(); + }, +}; + +export const SubmitDisabledWhenPromptEmpty: Story = { + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step("No prompt", async () => { + const submitButton = canvas.getByRole("button", { name: /run task/i }); + expect(submitButton).toBeDisabled(); + }); + + await step("Whitespace prompt", async () => { + const prompt = await canvas.findByLabelText(/prompt/i); + await userEvent.type(prompt, " "); + + const submitButton = canvas.getByRole("button", { name: /run task/i }); + expect(submitButton).toBeDisabled(); + }); + }, +}; + export const OnSuccess: Story = { decorators: [withGlobalSnackbar], parameters: { diff --git a/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx b/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx index 643d9713a9..a3ed3b427b 100644 --- a/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx +++ b/site/src/modules/tasks/TaskPrompt/TaskPrompt.tsx @@ -368,7 +368,7 @@ const CreateTaskForm: FC = ({ templates, onSuccess }) => {