Files
shop-admin/src/pages/setting/hooks/useSettingData.ts
T
hamid zarghami de7727d5bc setting shop
2025-10-01 09:24:22 +03:30

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