147 lines
3.3 KiB
TypeScript
147 lines
3.3 KiB
TypeScript
import * as api from "../service/SettingService";
|
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
import { FaqPageEnum, SiteSettingPageEnum } from "../enum/Enum";
|
|
import { type CreateFaqType, type CreatePricingItem } from "../types/Types";
|
|
|
|
export const useGetAboutUs = () => {
|
|
return useQuery({
|
|
queryKey: ["aboutUs"],
|
|
queryFn: api.getAboutUs,
|
|
});
|
|
};
|
|
|
|
export const useCreateAboutUs = () => {
|
|
return useMutation({
|
|
mutationFn: api.createAboutUs,
|
|
});
|
|
};
|
|
|
|
export const useDeleteAboutUs = () => {
|
|
return useMutation({
|
|
mutationFn: api.deleteAboutUs,
|
|
});
|
|
};
|
|
|
|
export const useGetFaq = (page: FaqPageEnum) => {
|
|
return useQuery({
|
|
queryKey: ["faq", page],
|
|
queryFn: () => api.getFaq(page),
|
|
});
|
|
};
|
|
|
|
export const useCreateFaq = () => {
|
|
return useMutation({
|
|
mutationFn: api.createFaq,
|
|
});
|
|
};
|
|
|
|
export const useDeleteFaq = () => {
|
|
return useMutation({
|
|
mutationFn: api.deleteFaq,
|
|
});
|
|
};
|
|
|
|
export const useGetFaqDetail = (id: string) => {
|
|
return useQuery({
|
|
queryKey: ["faqDetail", id],
|
|
queryFn: () => api.getFaqDetail(id),
|
|
enabled: !!id,
|
|
});
|
|
};
|
|
|
|
export const useUpdateFaq = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({id, params}: {id: string, params: CreateFaqType}) => api.updateFaq(id, params),
|
|
onSuccess: (_, {params}) => {
|
|
queryClient.invalidateQueries({ queryKey: ["faq", params.page] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useGetSiteSetting = (page: SiteSettingPageEnum) => {
|
|
return useQuery({
|
|
queryKey: ["siteSetting", page],
|
|
queryFn: () => api.getSiteSetting(page),
|
|
enabled: !!page,
|
|
});
|
|
};
|
|
|
|
export const useUpdateSiteSetting = () => {
|
|
return useMutation({
|
|
mutationFn: api.updateSiteSetting,
|
|
});
|
|
};
|
|
|
|
export const useCreateDocument = () => {
|
|
return useMutation({
|
|
mutationFn: api.createDocument,
|
|
});
|
|
};
|
|
|
|
export const useGetDocuments = () => {
|
|
return useQuery({
|
|
queryKey: ["documents"],
|
|
queryFn: api.getDocuments,
|
|
});
|
|
};
|
|
|
|
export const useDeleteDocument = () => {
|
|
return useMutation({
|
|
mutationFn: api.deleteDocument,
|
|
});
|
|
};
|
|
|
|
export const useGetPricing = () => {
|
|
return useQuery({
|
|
queryKey: ["pricing"],
|
|
queryFn: api.getPricing,
|
|
});
|
|
};
|
|
|
|
export const useCreatePricing = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: api.createPricing,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["pricing"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useUpdatePricing = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({id, params}: {id: string, params: CreatePricingItem}) => api.updatePricing(id, params),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["pricing"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useDeletePricing = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: api.deletePricing,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["pricing"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useGetShop = () => {
|
|
return useQuery({
|
|
queryKey: ["shop"],
|
|
queryFn: api.getShop,
|
|
});
|
|
};
|
|
|
|
export const useUpdateShop = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: api.updateShop,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["shop"] });
|
|
},
|
|
});
|
|
}; |