2023-07-30 09:11:26 +02:00
|
|
|
import { useState } from 'react';
|
2023-06-15 12:27:41 +02:00
|
|
|
import useApi from './useApi';
|
2023-08-10 22:26:33 +02:00
|
|
|
import useApiFilter from 'hooks/useApiFilter';
|
2023-06-15 12:27:41 +02:00
|
|
|
|
2023-08-14 07:21:49 +02:00
|
|
|
export function useReports() {
|
2023-07-30 09:11:26 +02:00
|
|
|
const [modified, setModified] = useState(Date.now());
|
|
|
|
const { get, useQuery, del, useMutation } = useApi();
|
|
|
|
const { mutate } = useMutation(reportId => del(`/reports/${reportId}`));
|
2023-08-10 22:26:33 +02:00
|
|
|
const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } =
|
|
|
|
useApiFilter();
|
|
|
|
const { data, error, isLoading } = useQuery(
|
2023-08-14 07:21:49 +02:00
|
|
|
['reports', { modified, filter, page, pageSize }],
|
|
|
|
() => get(`/reports`, { filter, page, pageSize }),
|
2023-07-30 09:11:26 +02:00
|
|
|
);
|
2023-06-15 12:27:41 +02:00
|
|
|
|
2023-07-30 09:11:26 +02:00
|
|
|
const deleteReport = id => {
|
|
|
|
mutate(id, {
|
|
|
|
onSuccess: () => {
|
|
|
|
setModified(Date.now());
|
|
|
|
},
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2023-08-10 22:26:33 +02:00
|
|
|
return {
|
|
|
|
reports: data,
|
|
|
|
error,
|
|
|
|
isLoading,
|
|
|
|
deleteReport,
|
|
|
|
filter,
|
|
|
|
page,
|
|
|
|
pageSize,
|
|
|
|
handleFilterChange,
|
|
|
|
handlePageChange,
|
|
|
|
handlePageSizeChange,
|
|
|
|
};
|
2023-06-15 12:27:41 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export default useReports;
|