2022-01-06 01:26:15 +00:00
|
|
|
import { useState, useEffect } from "react";
|
|
|
|
import toastError from "../../errors/toastError";
|
|
|
|
|
|
|
|
import api from "../../services/api";
|
|
|
|
|
|
|
|
const useTickets = ({
|
|
|
|
searchParam,
|
|
|
|
pageNumber,
|
|
|
|
status,
|
|
|
|
date,
|
|
|
|
showAll,
|
|
|
|
queueIds,
|
|
|
|
withUnreadMessages,
|
2022-04-18 18:21:28 +00:00
|
|
|
unlimited
|
2022-01-06 01:26:15 +00:00
|
|
|
}) => {
|
|
|
|
const [loading, setLoading] = useState(true);
|
|
|
|
const [hasMore, setHasMore] = useState(false);
|
2022-04-18 18:21:28 +00:00
|
|
|
const [tickets, setTickets] = useState([]);
|
2022-01-06 01:26:15 +00:00
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
setLoading(true);
|
|
|
|
const delayDebounceFn = setTimeout(() => {
|
|
|
|
const fetchTickets = async () => {
|
|
|
|
try {
|
|
|
|
const { data } = await api.get("/tickets", {
|
|
|
|
params: {
|
|
|
|
searchParam,
|
|
|
|
pageNumber,
|
|
|
|
status,
|
|
|
|
date,
|
|
|
|
showAll,
|
|
|
|
queueIds,
|
|
|
|
withUnreadMessages,
|
2022-04-18 18:21:28 +00:00
|
|
|
unlimited
|
2022-01-06 01:26:15 +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,
|
2022-04-18 18:21:28 +00:00
|
|
|
|
|
|
|
unlimited
|
2022-01-06 01:26:15 +00:00
|
|
|
]);
|
|
|
|
|
|
|
|
return { tickets, loading, hasMore };
|
|
|
|
};
|
|
|
|
|
|
|
|
export default useTickets;
|