import classNames from 'classnames'; import { useMessages, useSticky } from 'components/hooks'; import WebsiteDateFilter from 'components/input/WebsiteDateFilter'; import MetricCard from 'components/metrics/MetricCard'; import MetricsBar from 'components/metrics/MetricsBar'; import { formatShortTime } from 'lib/format'; import WebsiteFilterButton from './WebsiteFilterButton'; import styles from './WebsiteMetricsBar.module.css'; import useWebsiteStats from 'components/hooks/queries/useWebsiteStats'; export function WebsiteMetricsBar({ websiteId, showFilter = true, sticky, }: { websiteId: string; showFilter?: boolean; sticky?: boolean; }) { const { formatMessage, labels } = useMessages(); const { ref, isSticky } = useSticky({ enabled: sticky }); const { data, isLoading, isFetched, error } = useWebsiteStats(websiteId); const { views, visitors, visits, bounces, totaltime } = data || {}; const num = Math.min(data && visitors.value, data && bounces.value); const diffs = data && { views: views.value - views.change, visitors: visitors.value - visitors.change, visits: visits.value - visits.change, bounces: bounces.value - bounces.change, totaltime: totaltime.value - totaltime.change, }; return (
{views && visitors && ( <> Number(n).toFixed(0) + '%'} reverseColors /> `${+n < 0 ? '-' : ''}${formatShortTime(Math.abs(~~n), ['m', 's'], ' ')}`} /> )}
{showFilter && }
); } export default WebsiteMetricsBar;