import { useEffect, useState } from "react"; import { cacheData,getCachedData } from "../slices/apiDataManager"; import { MasterRespository } from "../repositories/MastersRepository"; import { useQuery } from "@tanstack/react-query"; export const useMasterRole =()=>{ const [masterRole, setMasterRole] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(""); const fetchData = async () => { try { const features_cache = getCachedData("masterRole"); if (!features_cache) { MasterRespository.getRoles() .then((response) => { setMasterRole(response.data); cacheData("masterRole", response.data); setLoading(false) }) .catch((error) => { setError("Failed to fetch data."); }); }else{ if (!masterRole.length) setMasterRole(features_cache); } } catch (err) { setError("Failed to fetch data."); } finally { setLoading(false); } }; useEffect(()=>{ fetchData(); },[]) return {masterRole,loading} } // export const useFeatures =()=> { // const [masterFeatures, setMasterFeatures] = useState([]); // const [loading, setLoading] = useState(true); // const [error, setError] = useState(""); // const fetchData = async () => { // try { // const features_cache = getCachedData("masterFeatures"); // if (!features_cache) { // MasterRespository.getFeatures() // .then((response) => { // setMasterFeatures(response.data); // cacheData("features", response.data); // setLoading(false) // }) // .catch((error) => { // setError("Failed to fetch data."); // }); // }else{ // if (!masterFeatures.length) setMasterFeatures(features_cache); // } // } catch (err) { // setError("Failed to fetch data."); // } finally { // setLoading(false); // } // }; // useEffect(()=>{ // fetchData(); // },[]) // return{masterFeatures,loading} // } // -----------------Query- ------------------------- export const useFeatures = () => { const {data=[],isLoading,error} = useQuery({ queryKey: ["masterFeatures"], queryFn: async () => { const response = await MasterRespository.getFeatures(); return response.data; }, } ); return { masterFeatures:data,loading:isLoading,error } };