2024-02-06 07:59:33 +00:00
|
|
|
import { useApi, useDateRange, useMessages } from 'components/hooks';
|
2023-07-10 11:35:19 +00:00
|
|
|
import MetricCard from 'components/metrics/MetricCard';
|
|
|
|
|
import WebsiteDateFilter from 'components/input/WebsiteDateFilter';
|
|
|
|
|
import MetricsBar from 'components/metrics/MetricsBar';
|
|
|
|
|
import styles from './EventDataMetricsBar.module.css';
|
|
|
|
|
|
2023-12-03 11:07:03 +00:00
|
|
|
export function EventDataMetricsBar({ websiteId }: { websiteId: string }) {
|
2023-07-10 11:35:19 +00:00
|
|
|
const { formatMessage, labels } = useMessages();
|
|
|
|
|
const { get, useQuery } = useApi();
|
2024-05-24 02:35:29 +00:00
|
|
|
const { dateRange } = useDateRange(websiteId);
|
2024-02-04 08:44:20 +00:00
|
|
|
const { startDate, endDate } = dateRange;
|
2023-07-10 11:35:19 +00:00
|
|
|
|
2023-12-02 04:27:59 +00:00
|
|
|
const { data, error, isLoading, isFetched } = useQuery({
|
2024-02-04 08:44:20 +00:00
|
|
|
queryKey: ['event-data:stats', { websiteId, startDate, endDate }],
|
2023-12-02 04:27:59 +00:00
|
|
|
queryFn: () =>
|
2023-07-11 08:16:17 +00:00
|
|
|
get(`/event-data/stats`, {
|
2023-07-10 11:35:19 +00:00
|
|
|
websiteId,
|
|
|
|
|
startAt: +startDate,
|
|
|
|
|
endAt: +endDate,
|
|
|
|
|
}),
|
2023-12-02 04:27:59 +00:00
|
|
|
});
|
2023-07-10 11:35:19 +00:00
|
|
|
|
|
|
|
|
return (
|
2023-10-03 06:51:26 +00:00
|
|
|
<div className={styles.container}>
|
|
|
|
|
<MetricsBar isLoading={isLoading} isFetched={isFetched} error={error}>
|
|
|
|
|
<MetricCard label={formatMessage(labels.events)} value={data?.events} />
|
|
|
|
|
<MetricCard label={formatMessage(labels.fields)} value={data?.fields} />
|
|
|
|
|
<MetricCard label={formatMessage(labels.totalRecords)} value={data?.records} />
|
|
|
|
|
</MetricsBar>
|
|
|
|
|
<div className={styles.actions}>
|
|
|
|
|
<WebsiteDateFilter websiteId={websiteId} />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2023-07-10 11:35:19 +00:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default EventDataMetricsBar;
|