import { Circle, SignalWifi4Bar, SignalWifiOff } from '@mui/icons-material' import { Box, Chip, Tooltip, Typography } from '@mui/joy' import { useSSEContext } from '../hooks/useSSEContext' const SSEConnectionStatus = ({ variant = 'minimal', showError = false, sx = {}, }) => { const { isConnected, isConnecting, error, getConnectionStatus } = useSSEContext() const getStatusColor = () => { if (isConnected) return 'success' if (isConnecting) return 'warning' return 'danger' } const getStatusIcon = () => { if (isConnected) return if (isConnecting) return return } const getStatusText = () => { if (isConnected) return 'Connected' if (isConnecting) return 'Connecting...' return 'Disconnected' } const getTooltipText = () => { const status = getConnectionStatus() if (error) return `Real-time updates (SSE): ${status} - ${error}` if (!isConnected && !isConnecting) { return `Real-time updates (SSE): ${status} - Join a circle to enable real-time updates` } return `Real-time updates (SSE): ${status}` } if (variant === 'minimal') { return ( {showError && error && ( {error} )} ) } if (variant === 'chip') { return ( {getStatusText()} ) } // Full variant return ( {getStatusIcon()} {getStatusText()} {showError && error && ( {error} )} ) } export default SSEConnectionStatus