import type { Hardware } from '@/shared/contracts/hardware.ts'; import { HardwareDetails } from './hardware-details.tsx'; import { AnchoredDialog } from '@/client/ui/anchored-dialog.tsx'; import { descriptions } from './signal-descriptions.ts'; import type { SignalDetails } from '@/client/exhibit/diagram/diagram-model.ts'; import type { SpectrumStats } from '@/shared/contracts/robot.ts'; export function SignalPopover({ details, analysis, hardware, radioStack, close, }: { details: SignalDetails | null; analysis?: SpectrumStats; hardware?: Hardware | null; radioStack?: number; close: () => void; }) { const detail = details ? descriptions[details.selection] : undefined; return ( {detail?.chain ? (

{detail.chain}

) : null}

{detail?.body}

{details?.selection === 'board' ? ( ) : null} {details?.selection === 'spectrum' && analysis ? (

Analysis: {(analysis.meanUs / 1000).toFixed(2)} ms/packet average ยท {analysis.errors}{' '} decode errors. Task timing, not CPU use.

) : null}
); }