import { Column, Text } from '@umami/react-zen'; import { SideMenu } from '@/components/common/SideMenu'; import { useMessages, useNavigation } from '@/components/hooks'; import { AlignEndHorizontal, ChartPie, Clock, Eye, Sheet, Tag, User, UserPlus, } from '@/components/icons'; import { WebsiteSelect } from '@/components/input/WebsiteSelect'; import { Funnel, Lightning, Magnet, Money, Network, Path, Target } from '@/components/svg'; export function WebsiteNav({ websiteId, onItemClick, }: { websiteId: string; onItemClick?: () => void; }) { const { formatMessage, labels } = useMessages(); const { pathname, renderUrl, teamId, router } = useNavigation(); const renderPath = (path: string) => renderUrl(`/websites/${websiteId}${path}`, { event: undefined, compare: undefined, view: undefined, unit: undefined, }); const items = [ { label: formatMessage(labels.traffic), items: [ { id: 'overview', label: formatMessage(labels.overview), icon: , path: renderPath(''), }, { id: 'events', label: formatMessage(labels.events), icon: , path: renderPath('/events'), }, { id: 'sessions', label: formatMessage(labels.sessions), icon: , path: renderPath('/sessions'), }, { id: 'realtime', label: formatMessage(labels.realtime), icon: , path: renderPath('/realtime'), }, { id: 'compare', label: formatMessage(labels.compare), icon: , path: renderPath('/compare'), }, { id: 'breakdown', label: formatMessage(labels.breakdown), icon: , path: renderPath('/breakdown'), }, ], }, { label: formatMessage(labels.behavior), items: [ { id: 'goals', label: formatMessage(labels.goals), icon: , path: renderPath('/goals'), }, { id: 'funnel', label: formatMessage(labels.funnels), icon: , path: renderPath('/funnels'), }, { id: 'journeys', label: formatMessage(labels.journeys), icon: , path: renderPath('/journeys'), }, { id: 'retention', label: formatMessage(labels.retention), icon: , path: renderPath('/retention'), }, ], }, { label: formatMessage(labels.audience), items: [ { id: 'segments', label: formatMessage(labels.segments), icon: , path: renderPath('/segments'), }, { id: 'cohorts', label: formatMessage(labels.cohorts), icon: , path: renderPath('/cohorts'), }, ], }, { label: formatMessage(labels.growth), items: [ { id: 'utm', label: formatMessage(labels.utm), icon: , path: renderPath('/utm'), }, { id: 'revenue', label: formatMessage(labels.revenue), icon: , path: renderPath('/revenue'), }, { id: 'attribution', label: formatMessage(labels.attribution), icon: , path: renderPath('/attribution'), }, ], }, ]; const handleChange = (value: string) => { router.push(renderUrl(`/websites/${value}`)); }; const renderValue = (value: any) => { return ( {value?.selectedItem?.name} ); }; const selectedKey = items .flatMap(e => e.items) .find(({ path }) => path && pathname.endsWith(path.split('?')[0]))?.id; return ( ); }