umami/src/components/hooks/useReports.ts

39 lines
968 B
TypeScript
Raw Normal View History

2023-07-30 09:11:26 +02:00
import { useState } from 'react';
2023-06-15 12:27:41 +02:00
import useApi from './useApi';
import useApiFilter from 'components/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;