Files
expert-front/src/lib/app/hooks/useChart.jsx

39 lines
1.1 KiB
JavaScript

import useRequest from "@/lib/app/hooks/useRequest";
import useSWR from "swr";
import {useState} from "react";
const useChart = (chart_url) => {
const requestServer = useRequest({auth: true, notification: false})
const [filterOption, setFilterOption] = useState([]);
const queryString = filterOption.length !== 0
? `?${filterOption.map((option) => `${option.key}=${option.value}`).join('&')}`
: '';
//swr config
const fetcher = (...args) => {
return requestServer(args, 'get').then(({data}) => {
return data.data;
}).catch(() => {
})
};
const {
data,
isValidating,
mutate
} = useSWR(filterOption.length !== 0 ? `${chart_url}${queryString}` : "", fetcher, {
revalidateIfStale: false,
revalidateOnFocus: false,
revalidateOnReconnect: false,
keepPreviousData: true
});
return {
reportList: data,
isLoadingReportList: isValidating,
errorReportList: !data,
setFilterOption: setFilterOption,
mutate: mutate
}
};
export default useChart;