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], // }); // }, }); };