diff --git a/src/components/metrics/UniqueSessions.tsx b/src/components/metrics/UniqueSessions.tsx index d39405a6..8f0cba3b 100644 --- a/src/components/metrics/UniqueSessions.tsx +++ b/src/components/metrics/UniqueSessions.tsx @@ -1,27 +1,39 @@ -import { Container, Text } from '@umami/react-zen'; -import { useMemo } from 'react'; -import { useWebsiteEventsQuery } from '@/components/hooks'; +import { Container, Loading, Text } from '@umami/react-zen'; +import { useWebsiteStatsQuery } from '@/components/hooks'; -const UniqueSessions = ({ websiteId }) => { - const query = useWebsiteEventsQuery(websiteId, { view: 'all' }); +interface UniqueSessionsProps { + websiteId: string; +} - const uniqueSessionCount = useMemo(() => { - if (!query?.data?.data) return 0; +const UniqueSessions = ({ websiteId }: UniqueSessionsProps) => { + const { data, isLoading, error } = useWebsiteStatsQuery(websiteId); - const uniqueSessions = new Set(query.data.data.map((event: any) => event.sessionId)); + const renderContent = () => { + if (isLoading) { + return ; + } - return uniqueSessions.size; - }, [query?.data?.data]); + if (error) { + return ( + + Error loading data + + ); + } + + return ( + + {data?.visitors ?? 0} + + ); + }; return ( Unique Sessions: - - {' '} - {uniqueSessionCount} - + {renderContent()} ); };