delete task and update task

This commit is contained in:
hamid zarghami
2026-07-11 11:58:49 +03:30
parent 833ac2446f
commit c4150ab8ac
10 changed files with 306 additions and 44 deletions
@@ -1,6 +1,14 @@
import { useMutation, useQueryClient } from "@tanstack/react-query";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import * as api from "../service/TaskService";
import { CreateTaskType } from "../types/TaskTypes";
import { CreateTaskType, UpdateTaskType } from "../types/TaskTypes";
export const useGetTaskDetail = (id: string, enabled = true) => {
return useQuery({
queryKey: ["task-detail", id],
queryFn: () => api.getTaskDetail(id),
enabled: !!id && enabled,
});
};
export const useCreateTask = () => {
const queryClient = useQueryClient();
@@ -12,3 +20,28 @@ export const useCreateTask = () => {
},
});
};
export const useUpdateTask = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ id, params }: { id: string; params: UpdateTaskType }) => api.updateTask(id, params),
onSuccess: (_data, variables) => {
queryClient.invalidateQueries({ queryKey: ["task-detail", variables.id] });
queryClient.invalidateQueries({ queryKey: ["project"] });
},
});
};
export const useDeleteTask = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ id }: { id: string; projectId: string }) => api.deleteTask(id),
onSuccess: (_data, variables) => {
queryClient.invalidateQueries({ queryKey: ["task-detail", variables.id] });
queryClient.invalidateQueries({ queryKey: ["project", variables.projectId] });
queryClient.invalidateQueries({ queryKey: ["project"] });
},
});
};