umami/src/components/hooks/useReports.ts

31 lines
822 B
TypeScript
Raw Normal View History

2023-07-30 07:11:26 +00:00
import { useState } from 'react';
2023-06-15 10:27:41 +00:00
import useApi from './useApi';
2023-12-03 11:07:03 +00:00
import useFilterQuery from 'components/hooks/useFilterQuery';
2023-06-15 10:27:41 +00:00
2023-12-03 11:07:03 +00:00
export function useReports(websiteId?: string) {
2023-07-30 07:11:26 +00:00
const [modified, setModified] = useState(Date.now());
2023-12-03 11:07:03 +00:00
const { get, del, useMutation } = useApi();
const { mutate } = useMutation({ mutationFn: (reportId: string) => del(`/reports/${reportId}`) });
const queryResult = useFilterQuery({
queryKey: ['reports', { websiteId, modified }],
queryFn: (params: any) => {
return get(websiteId ? `/websites/${websiteId}/reports` : `/reports`, params);
},
2023-12-02 04:27:59 +00:00
});
2023-06-15 10:27:41 +00:00
2023-12-03 11:07:03 +00:00
const deleteReport = (id: any) => {
2023-07-30 07:11:26 +00:00
mutate(id, {
onSuccess: () => {
setModified(Date.now());
},
});
};
2023-08-10 20:26:33 +00:00
return {
2023-12-03 11:07:03 +00:00
...queryResult,
2023-08-10 20:26:33 +00:00
deleteReport,
};
2023-06-15 10:27:41 +00:00
}
export default useReports;