/** * OngoingIndicator - Pulsing green dot for sessions/groups in progress. * Shared across SessionItem (sidebar) and LastOutputDisplay (chat). */ import React from 'react'; import { useAppTranslation } from '@features/localization/renderer'; import { Loader2 } from 'lucide-react'; interface OngoingIndicatorProps { /** Size variant */ size?: 'sm' | 'md'; /** Whether to show text label */ showLabel?: boolean; /** Custom label text */ label?: string; /** Accessible title/tooltip text */ title?: string; } /** * Pulsing green dot indicator for ongoing sessions. * Use size="sm" for compact displays (sidebar), size="md" for larger displays (chat). */ export const OngoingIndicator = ({ size = 'sm', showLabel = false, label = 'Session in progress...', title = label, }: Readonly): React.JSX.Element => { const dotSize = size === 'sm' ? 'h-2 w-2' : 'h-2.5 w-2.5'; return ( {showLabel && ( {label} )} ); }; /** * OngoingBanner - Full-width banner variant for the LastOutputDisplay. * Shows animated spinner and text. */ export const OngoingBanner = (): React.JSX.Element => { const { t } = useAppTranslation('common'); return (
{t('sessions.inProgress')}
); };