import { useEventQueryFilters } from '@/hooks/use-event-query-filters'; import { cn } from '@/utils/cn'; import { Globe2Icon } from 'lucide-react'; import { parseAsBoolean, useQueryState } from 'nuqs'; import { useTRPC } from '@/integrations/trpc/react'; import { pushModal } from '@/modals'; import { useQuery } from '@tanstack/react-query'; import { Button } from '../ui/button'; import { Widget, WidgetBody } from '../widget'; import OverviewDetailsButton from './overview-details-button'; import { WidgetButtons, WidgetFooter, WidgetHead } from './overview-widget'; import { OverviewWidgetTableLoading, OverviewWidgetTablePages, } from './overview-widget-table'; import { useOverviewOptions } from './useOverviewOptions'; import { useOverviewWidgetV2 } from './useOverviewWidget'; interface OverviewTopPagesProps { projectId: string; } export default function OverviewTopPages({ projectId }: OverviewTopPagesProps) { const { interval, range, startDate, endDate } = useOverviewOptions(); const [filters] = useEventQueryFilters(); const [domain, setDomain] = useQueryState('d', parseAsBoolean); const [widget, setWidget, widgets] = useOverviewWidgetV2('pages', { page: { title: 'Top pages', btn: 'Top pages', meta: { columns: { sessions: 'Sessions', }, }, }, entry: { title: 'Entry Pages', btn: 'Entries', meta: { columns: { sessions: 'Entries', }, }, }, exit: { title: 'Exit Pages', btn: 'Exits', meta: { columns: { sessions: 'Exits', }, }, }, // bot: { // title: 'Bots', // btn: 'Bots', // }, }); const trpc = useTRPC(); const query = useQuery( trpc.overview.topPages.queryOptions({ projectId, filters, startDate, endDate, mode: widget.key, range, }), ); const data = query.data; return ( <>
{widget.title}
{widgets.map((w) => ( ))}
{query.isLoading ? ( ) : ( <> {/**/} )} pushModal('OverviewTopPagesModal', { projectId })} /> {/* */}
); }