umami/components/pages/reports/FunnelPage.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-05-15 06:38:03 +02:00
import { useMutation } from '@tanstack/react-query';
2023-05-12 01:42:58 +02:00
import Page from 'components/layout/Page';
2023-05-15 06:38:03 +02:00
import PageHeader from 'components/layout/PageHeader';
import useApi from 'hooks/useApi';
import { useState } from 'react';
2023-05-12 01:42:58 +02:00
import FunnelChart from './FunnelChart';
2023-05-15 06:38:03 +02:00
import FunnelTable from './FunnelTable';
2023-05-12 01:42:58 +02:00
import FunnelForm from './FunnelForm';
2023-05-15 06:38:03 +02:00
import styles from './FunnelPage.module.css';
2023-05-12 01:42:58 +02:00
export default function FunnelPage() {
2023-05-15 06:38:03 +02:00
const { post } = useApi();
const { mutate, error, isLoading } = useMutation(data => post('/reports/funnel', data));
const [data, setData] = useState();
function handleOnSearch(data) {
2023-05-12 01:42:58 +02:00
// do API CALL to api/reports/funnel to get funnelData
// Get DATA
2023-05-15 06:38:03 +02:00
mutate(data, {
onSuccess: async data => {
setData(data);
},
});
2023-05-12 01:42:58 +02:00
}
return (
<Page>
2023-05-15 06:38:03 +02:00
<PageHeader title="Funnel Report"></PageHeader>
<FunnelChart data={data} />
<FunnelTable data={data} />
2023-05-12 01:42:58 +02:00
{/* <ReportForm /> */}
2023-05-15 06:38:03 +02:00
<div>
<h2>Filters</h2>
<FunnelForm onSearch={handleOnSearch} />
</div>
2023-05-12 01:42:58 +02:00
</Page>
);
}