projeto-hit/frontend/src/hooks/useTickets/index.js

76 lines
1.4 KiB
JavaScript
Raw Normal View History

import { useState, useEffect } from "react";
import toastError from "../../errors/toastError";
import api from "../../services/api";
const useTickets = ({
searchParam,
pageNumber,
status,
date,
showAll,
queueIds,
withUnreadMessages,
unlimited
}) => {
const [loading, setLoading] = useState(true);
const [hasMore, setHasMore] = useState(false);
const [tickets, setTickets] = useState([]);
useEffect(() => {
setLoading(true);
const delayDebounceFn = setTimeout(() => {
const fetchTickets = async () => {
try {
if(searchParam){
console.log('searchParam: ', searchParam)
return
}
const { data } = await api.get("/tickets", {
params: {
searchParam,
pageNumber,
status,
date,
showAll,
queueIds,
withUnreadMessages,
unlimited
},
2022-05-20 15:30:01 +00:00
});
console.log('data.tickets: ', data.tickets)
// console.log('data.hasMore: ', data.hasMore)
2022-05-20 15:30:01 +00:00
setTickets(data.tickets);
setHasMore(data.hasMore);
setLoading(false);
} catch (err) {
setLoading(false);
toastError(err);
}
};
fetchTickets();
}, 500);
return () => clearTimeout(delayDebounceFn);
}, [
searchParam,
pageNumber,
status,
date,
showAll,
queueIds,
withUnreadMessages,
unlimited
]);
return { tickets, loading, hasMore };
};
export default useTickets;