80 lines
1.9 KiB
TypeScript
80 lines
1.9 KiB
TypeScript
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
import * as api from "../service/PrintService";
|
|
import type { CreatePrintFormType, CreateSectionType } from "../types/Types";
|
|
|
|
export const useGetSections = () => {
|
|
return useQuery({
|
|
queryKey: ["sections"],
|
|
queryFn: api.getSections,
|
|
});
|
|
};
|
|
|
|
export const useGetSectionsDetail = (id: string) => {
|
|
return useQuery({
|
|
queryKey: ["section", id],
|
|
queryFn: () => api.getSectionDetail(id),
|
|
});
|
|
};
|
|
|
|
export const useCreateSection = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: api.createSection,
|
|
onSuccess: () => {
|
|
queryClient.refetchQueries({
|
|
queryKey: ["sections"],
|
|
});
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useUpdateSection = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({ id, params }: { id: string; params: CreateSectionType }) =>
|
|
api.updateSection(id, params),
|
|
onSuccess: (_, params) => {
|
|
queryClient.refetchQueries({
|
|
queryKey: ["sections"],
|
|
});
|
|
queryClient.refetchQueries({
|
|
queryKey: ["section", params.id],
|
|
});
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useDeleteSection = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: (id: string) => api.deleteSection(id),
|
|
onSuccess: () => {
|
|
queryClient.refetchQueries({
|
|
queryKey: ["sections"],
|
|
});
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useCreatePrintForm = () => {
|
|
return useMutation({
|
|
mutationFn: ({
|
|
orderId,
|
|
itemId,
|
|
params,
|
|
}: {
|
|
orderId: string;
|
|
itemId: string;
|
|
params: CreatePrintFormType;
|
|
}) => api.createPrintForm(orderId, itemId, params),
|
|
// onSuccess: (_, params) => {
|
|
// queryClient.refetchQueries({
|
|
// queryKey: ["sections"],
|
|
// });
|
|
// queryClient.refetchQueries({
|
|
// queryKey: ["section", params.id],
|
|
// });
|
|
// },
|
|
});
|
|
};
|