marco.pms.web/src/hooks/useTenant.js

65 lines
1.6 KiB
JavaScript

import { useMutation, useQuery } from "@tanstack/react-query";
import { TenantRepository } from "../repositories/TenantRepository";
import { MarketRepository } from "../repositories/MarketRepository";
import showToast from "../services/toastService";
export const useTenants = (
pageSize,
pageNumber,
filter,
searchString = ""
) => {
return useQuery({
queryKey: ["Tenants", pageNumber, pageSize],
queryFn: async () => {
const response = await TenantRepository.getTenanatList(
pageSize,
pageNumber,
);
return response.data;
},
keepPreviousData: true,
staleTime: 5 * 60 * 1000,
});
};
export const useIndustries=()=>{
return useQuery({
queryKey:['Industries'],
queryFn: async()=>{
const res = await MarketRepository.getIndustries();
return res.data;
}
})
}
export const useSubscriptionPlan=(freq)=>{
return useQuery({
queryKey:['SubscriptionPlan',freq],
queryFn:async()=>{
const res = await TenantRepository.getSubscriptionPlan(freq);
return res.data;
}
})
}
// ------------Mutation---------------------
export const usecreateTenant = (onSuccessCallback)=>{
return useMutation({
mutationFn:async(tenantPayload)=>{
const res = await TenantRepository.createTenant(tenantPayload);
return res.data;
},
onSuccess:(data,variables)=>{
showToast("Tenant Created SuccessFully","success")
if(onSuccessCallback) onSuccessCallback()
},
onError:(error)=>{
showToast(error.response.message || error.message || `Something went wrong`,"error")
}
})
}