Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 978e218

Browse files
committed
feat: redirect to the task page after creation
1 parent 7b0b649 commit 978e218

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

site/src/pages/TasksPage/TasksPage.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Skeleton from "@mui/material/Skeleton";
22
import { API } from "api/api";
33
import { getErrorDetail, getErrorMessage } from "api/errors";
44
import { disabledRefetchOptions } from "api/queries/util";
5-
import type { Template } from "api/typesGenerated";
5+
import type { Template, Workspace } from "api/typesGenerated";
66
import { ErrorAlert } from "components/Alert/ErrorAlert";
77
import { Avatar } from "components/Avatar/Avatar";
88
import { AvatarData } from "components/Avatar/AvatarData";
@@ -46,7 +46,7 @@ import { generateWorkspaceName } from "modules/workspaces/generateWorkspaceName"
4646
import { type FC, type ReactNode, useState } from "react";
4747
import { Helmet } from "react-helmet-async";
4848
import { useMutation, useQuery, useQueryClient } from "react-query";
49-
import { Link as RouterLink } from "react-router-dom";
49+
import { Link as RouterLink, useNavigate } from "react-router-dom";
5050
import TextareaAutosize from "react-textarea-autosize";
5151
import { pageTitle } from "utils/page";
5252
import { relativeTime } from "utils/time";
@@ -157,6 +157,7 @@ const TaskFormSection: FC<{
157157
filter: TasksFilter;
158158
onFilterChange: (filter: TasksFilter) => void;
159159
}> = ({ showFilter, filter, onFilterChange }) => {
160+
const navigate = useNavigate();
160161
const {
161162
data: templates,
162163
error,
@@ -184,7 +185,14 @@ const TaskFormSection: FC<{
184185
}
185186
return (
186187
<>
187-
<TaskForm templates={templates} />
188+
<TaskForm
189+
templates={templates}
190+
onSuccess={(task) => {
191+
navigate(
192+
`/tasks/${task.workspace.owner_name}/${task.workspace.name}`,
193+
);
194+
}}
195+
/>
188196
{showFilter && (
189197
<TasksFilter filter={filter} onFilterChange={onFilterChange} />
190198
)}
@@ -196,9 +204,10 @@ type CreateTaskMutationFnProps = { prompt: string; templateId: string };
196204

197205
type TaskFormProps = {
198206
templates: Template[];
207+
onSuccess: (task: Task) => void;
199208
};
200209

201-
const TaskForm: FC<TaskFormProps> = ({ templates }) => {
210+
const TaskForm: FC<TaskFormProps> = ({ templates, onSuccess }) => {
202211
const { user } = useAuthenticated();
203212
const queryClient = useQueryClient();
204213

@@ -220,10 +229,11 @@ const TaskForm: FC<TaskFormProps> = ({ templates }) => {
220229
const createTaskMutation = useMutation({
221230
mutationFn: async ({ prompt, templateId }: CreateTaskMutationFnProps) =>
222231
data.createTask(prompt, user.id, templateId),
223-
onSuccess: async () => {
232+
onSuccess: async (task) => {
224233
await queryClient.invalidateQueries({
225234
queryKey: ["tasks"],
226235
});
236+
onSuccess(task);
227237
},
228238
});
229239

@@ -244,7 +254,6 @@ const TaskForm: FC<TaskFormProps> = ({ templates }) => {
244254
prompt,
245255
templateId: templateID,
246256
});
247-
form.reset();
248257
} catch (error) {
249258
const message = getErrorMessage(error, "Error creating task");
250259
const detail = getErrorDetail(error) ?? "Please try again";

0 commit comments

Comments
 (0)