22 lines
772 B
React
22 lines
772 B
React
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
import { api } from "../lib/apiClient.ts";
|
|
|
|
export function useUpdateReportTodo (monthId) {
|
|
const qc = useQueryClient();
|
|
return useMutation({
|
|
mutationFn:(data) => api.post(`/reports/todo`, data).then(r => r.data),
|
|
onSuccess:(update) => {
|
|
const reports = qc.getQueryData(['reports', monthId]);
|
|
const newTodo = update.todoItem;
|
|
const newReports = reports.map(report => {
|
|
if(report.id === update.reportId){
|
|
const tmp = report.reportsTodos.filter(r => r.id !== newTodo.id);
|
|
tmp.push(newTodo);
|
|
return {...report,reportsTodos: tmp, statusTodo: update.reportStatusTodo}
|
|
}
|
|
return {...report};
|
|
});
|
|
qc.setQueryData(['reports', monthId], [...newReports]);
|
|
},
|
|
})
|
|
} |