'use client' import { useSoloStore } from '@/stores/solo-store' import type { RealtimeStatus } from '@/stores/solo-store' import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip' import { cn } from '@/lib/utils' import { debugProps } from '@/lib/debug' function RealtimeIndicator({ status, showConnectingIndicator, }: { status: RealtimeStatus showConnectingIndicator: boolean }) { let color = 'bg-status-done' let label = 'Live' if (showConnectingIndicator) { if (status === 'disconnected') { color = 'bg-priority-critical' label = 'Verbroken — opnieuw proberen…' } else { color = 'bg-muted-foreground' label = 'Verbinden…' } } return ( } /> {label} ) } export function SoloNavStatusIndicators({ hasActiveProduct, minQuotaPct, }: { hasActiveProduct: boolean minQuotaPct: number }) { const realtimeStatus = useSoloStore((s) => s.realtimeStatus) const showConnectingIndicator = useSoloStore((s) => s.showConnectingIndicator) const connectedWorkers = useSoloStore((s) => s.connectedWorkers) const workerQuotaPct = useSoloStore((s) => s.workerQuotaPct) if (!hasActiveProduct) return null // M13: stand-by als alle workers low quota hebben (workerQuotaPct geldt // voor de laatste-rapporterende worker; bij N>1 workers is dit een // benadering — server-side aggregate is een v2-verbetering). const isStandby = connectedWorkers > 0 && workerQuotaPct !== null && workerQuotaPct < minQuotaPct return (
0 ? 'bg-status-done' : 'bg-muted-foreground/40' )} /> {isStandby ? ( Stand-by ({workerQuotaPct}%)} /> Worker wacht tot Anthropic-quota stijgt boven {minQuotaPct}% ) : connectedWorkers > 0 ? ( 'Agent verbonden' ) : ( 'Geen agent' )}
) }