149 lines
3.4 KiB
TypeScript
149 lines
3.4 KiB
TypeScript
import * as api from "../service/SellerService";
|
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
import type {
|
|
CreateCategoryLearning,
|
|
CreateLearningType,
|
|
} from "../types/Types";
|
|
|
|
export const useGetSellers = (page: number = 1, enabled: boolean = true) => {
|
|
return useQuery({
|
|
queryKey: ["sellers", page],
|
|
queryFn: () => api.getSellers(page),
|
|
enabled,
|
|
});
|
|
};
|
|
|
|
export const useToggleSellerStatus = () => {
|
|
return useMutation({
|
|
mutationFn: api.toggleSellerStatus,
|
|
});
|
|
};
|
|
|
|
export const useApproveContract = () => {
|
|
return useMutation({
|
|
mutationFn: api.approveContract,
|
|
});
|
|
};
|
|
|
|
export const useGetWholesaleRequests = (page: number = 1) => {
|
|
return useQuery({
|
|
queryKey: ["wholesale-requests", page],
|
|
queryFn: () => api.getWholesaleRequests(page),
|
|
});
|
|
};
|
|
|
|
export const useApproveWholesaleRequest = () => {
|
|
return useMutation({
|
|
mutationFn: api.approveWholesaleRequest,
|
|
});
|
|
};
|
|
|
|
export const useGetWithdrawalRequests = (page: number = 1) => {
|
|
return useQuery({
|
|
queryKey: ["withdrawal-requests", page],
|
|
queryFn: () => api.getWithdrawalRequests(page),
|
|
});
|
|
};
|
|
|
|
export const useGetAnnouncementSeller = (page: number = 1) => {
|
|
return useQuery({
|
|
queryKey: ["announcement-seller", page],
|
|
queryFn: () => api.getAnnouncementSeller(page),
|
|
});
|
|
};
|
|
|
|
export const useCreateAnnouncementSeller = () => {
|
|
return useMutation({
|
|
mutationFn: api.createAnnouncementSeller,
|
|
});
|
|
};
|
|
|
|
export const useCreateAnnouncementSpecificSeller = () => {
|
|
return useMutation({
|
|
mutationFn: api.createAnnouncementToSpecificSellers,
|
|
});
|
|
};
|
|
|
|
export const useGetRequestCreateProduct = (page: number = 1) => {
|
|
return useQuery({
|
|
queryKey: ["request-create-product", page],
|
|
queryFn: () => api.getRequestCreateProduct(page),
|
|
});
|
|
};
|
|
|
|
export const useGetLearningCategory = () => {
|
|
return useQuery({
|
|
queryKey: ["learning-category"],
|
|
queryFn: () => api.getLearningCategory(),
|
|
});
|
|
};
|
|
|
|
export const useCreateLearningCategory = () => {
|
|
return useMutation({
|
|
mutationFn: api.createLearningCategory,
|
|
});
|
|
};
|
|
|
|
export const useUpdateLearningCategory = () => {
|
|
return useMutation({
|
|
mutationFn: ({
|
|
id,
|
|
params,
|
|
}: {
|
|
id: string;
|
|
params: CreateCategoryLearning;
|
|
}) => api.updateLearningCategory(id, params),
|
|
});
|
|
};
|
|
|
|
export const useGetLearning = () => {
|
|
return useQuery({
|
|
queryKey: ["learning"],
|
|
queryFn: () => api.getLearning(),
|
|
});
|
|
};
|
|
|
|
export const useCreateLearning = () => {
|
|
return useMutation({
|
|
mutationFn: api.createLearning,
|
|
});
|
|
};
|
|
|
|
export const useUpdateLearning = () => {
|
|
return useMutation({
|
|
mutationFn: ({ id, params }: { id: string; params: CreateLearningType }) =>
|
|
api.updateLearning(id, params),
|
|
});
|
|
};
|
|
|
|
export const useGetLearningById = (id: string, enabled: boolean = true) => {
|
|
return useQuery({
|
|
queryKey: ["learning", id],
|
|
queryFn: () => api.getLearningById(id),
|
|
enabled: enabled && !!id,
|
|
});
|
|
};
|
|
|
|
export const useDeleteLearning = () => {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: api.deleteLearning,
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ["learning"] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useGetContentContract = () => {
|
|
return useQuery({
|
|
queryKey: ["content-contract"],
|
|
queryFn: api.getContentContract,
|
|
});
|
|
};
|
|
|
|
export const useUpdateContract = () => {
|
|
return useMutation({
|
|
mutationFn: api.updateContract,
|
|
});
|
|
};
|