Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6d0943a

Browse files
feat: don't redirect to task page when it is created (#19919)
**Demo:**https://github.com/user-attachments/assets/3ffaa13e-553f-43d2-9fad-d4d3ea7a4edeCloses#19675
1 parent8f3e03a commit6d0943a

File tree

3 files changed

+25
-11
lines changed

3 files changed

+25
-11
lines changed

‎site/src/pages/TasksPage/TaskPrompt.tsx‎

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import type {
1010
import{ErrorAlert}from"components/Alert/ErrorAlert";
1111
import{Button}from"components/Button/Button";
1212
import{ExternalImage}from"components/ExternalImage/ExternalImage";
13-
import{displayError}from"components/GlobalSnackbar/utils";
13+
import{displayError,displaySuccess}from"components/GlobalSnackbar/utils";
1414
import{Link}from"components/Link/Link";
1515
import{
1616
Select,
@@ -33,7 +33,6 @@ import { RedoIcon, RotateCcwIcon, SendIcon } from "lucide-react";
3333
import{AI_PROMPT_PARAMETER_NAME}from"modules/tasks/tasks";
3434
import{typeFC,useEffect,useState}from"react";
3535
import{useMutation,useQuery,useQueryClient}from"react-query";
36-
import{useNavigate}from"react-router";
3736
importTextareaAutosizefrom"react-textarea-autosize";
3837
import{docs}from"utils/docs";
3938

@@ -50,8 +49,6 @@ export const TaskPrompt: FC<TaskPromptProps> = ({
5049
error,
5150
onRetry,
5251
})=>{
53-
constnavigate=useNavigate();
54-
5552
if(error){
5653
return<TaskPromptLoadingErrorerror={error}onRetry={onRetry}/>;
5754
}
@@ -64,8 +61,8 @@ export const TaskPrompt: FC<TaskPromptProps> = ({
6461
return(
6562
<CreateTaskForm
6663
templates={templates}
67-
onSuccess={(task)=>{
68-
navigate(`/tasks/${task.owner_name}/${task.name}`);
64+
onSuccess={()=>{
65+
displaySuccess("Task created successfully");
6966
}}
7067
/>
7168
);
@@ -195,9 +192,7 @@ const CreateTaskForm: FC<CreateTaskFormProps> = ({ templates, onSuccess }) => {
195192
template_version_preset_id:selectedPresetId,
196193
}),
197194
onSuccess:async(task)=>{
198-
awaitqueryClient.invalidateQueries({
199-
queryKey:["tasks"],
200-
});
195+
awaitqueryClient.invalidateQueries({queryKey:["tasks"]});
201196
onSuccess(task);
202197
},
203198
});

‎site/src/pages/TasksPage/TasksPage.stories.tsx‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ export const LoadedTasksWaitingForInputTab: Story = {
226226
};
227227

228228
exportconstCreateTaskSuccessfully:Story={
229+
decorators:[withGlobalSnackbar],
229230
parameters:{
230231
reactRouter:reactRouterParameters({
231232
location:{
@@ -261,8 +262,17 @@ export const CreateTaskSuccessfully: Story = {
261262
awaituserEvent.click(submitButton);
262263
});
263264

264-
awaitstep("Redirects to the task page",async()=>{
265-
awaitcanvas.findByText(/taskpage/i);
265+
awaitstep("Displays success message",async()=>{
266+
constbody=within(canvasElement.ownerDocument.body);
267+
constsuccessMessage=awaitbody.findByText(/taskcreated/i);
268+
expect(successMessage).toBeInTheDocument();
269+
});
270+
271+
awaitstep("Find task in the table",async()=>{
272+
consttable=canvasElement.querySelector("table");
273+
awaitwaitFor(()=>{
274+
expect(table).toHaveTextContent(MockNewTaskData.prompt);
275+
});
266276
});
267277
},
268278
};

‎site/src/pages/TasksPage/TasksPage.tsx‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@ const TasksPage: FC = () => {
4343
queryKey:["tasks",filter],
4444
queryFn:()=>API.experimental.getTasks(filter),
4545
refetchInterval:10_000,
46+
// TODO: Switch to sorting by latest_status_app.created_at once it’s reliable.
47+
// Currently, it doesn’t always update fast enough for a good UX, so we’re
48+
// temporarily sorting by workspace.created_at instead.
49+
select:(tasks)=>
50+
tasks.toSorted(
51+
(a,b)=>
52+
newDate(b.workspace.created_at).getTime()-
53+
newDate(a.workspace.created_at).getTime(),
54+
),
4655
});
4756
constidleTasks=tasksQuery.data?.filter(
4857
(task)=>task.workspace.latest_app_status?.state==="idle",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp