import { useMemo } from 'react'; import { useQuery } from '@tanstack/react-query'; import { useNavigate, useParams } from 'react-router-dom'; import { getCurrent } from '../../entities/current/api'; import { countLiveCurrentItems, getLatestCurrentUpdatedAt, } from '../current/model'; import { useCurrentEvents } from '../current/useCurrentEvents'; import { EdgePageLayout } from './components/EdgePageLayout'; import { OverviewView } from './components/OverviewView'; export function EdgeDetailPage() { const navigate = useNavigate(); const { edgeId = '' } = useParams(); const edgePath = `/edges/${encodeURIComponent(edgeId)}`; const currentEventsConnected = useCurrentEvents(edgeId); const current = useQuery({ queryKey: ['current', edgeId], queryFn: () => getCurrent(edgeId), enabled: Boolean(edgeId), refetchInterval: currentEventsConnected ? false : 1_000, }); const currentItems = useMemo(() => current.data?.items ?? [], [current.data?.items]); const latestUpdatedAt = useMemo(() => getLatestCurrentUpdatedAt(currentItems), [currentItems]); const liveCount = countLiveCurrentItems(currentItems); return ( void current.refetch()} > navigate(`${edgePath}/archive`)} onOpenIndicators={() => navigate(`${edgePath}/indicators`)} /> ); }