import { isSameDay } from 'date-fns'; import { Icon, StatusLight, Column, Row, Heading, Text, Button, DialogTrigger, Popover, Dialog, } from '@umami/react-zen'; import { LoadingPanel } from '@/components/common/LoadingPanel'; import { Eye, FileText } from '@/components/icons'; import { Lightning } from '@/components/svg'; import { useMessages, useSessionActivityQuery, useTimezone } from '@/components/hooks'; import { EventData } from '@/components/metrics/EventData'; export function SessionActivity({ websiteId, sessionId, startDate, endDate, }: { websiteId: string; sessionId: string; startDate: Date; endDate: Date; }) { const { formatMessage, labels } = useMessages(); const { formatTimezoneDate } = useTimezone(); const { data, isLoading, error } = useSessionActivityQuery( websiteId, sessionId, startDate, endDate, ); let lastDay = null; return ( {data?.map(({ eventId, createdAt, urlPath, eventName, visitId, hasData }) => { const showHeader = !lastDay || !isSameDay(new Date(lastDay), new Date(createdAt)); lastDay = createdAt; return ( {showHeader && {formatTimezoneDate(createdAt, 'PPPP')}} {formatTimezoneDate(createdAt, 'pp')} {eventName ? : } {eventName ? formatMessage(labels.triggeredEvent) : formatMessage(labels.viewedPage)} {eventName || urlPath} {hasData > 0 && } ); })} ); } const PropertiesButton = props => { return ( ); };