| | import React from 'react';
|
| | import { Box, Chip, keyframes } from '@mui/material';
|
| | import CircleIcon from '@mui/icons-material/Circle';
|
| |
|
| | interface ConnectionStatusProps {
|
| | isConnected: boolean;
|
| | }
|
| |
|
| |
|
| | const pulse = keyframes`
|
| | 0%, 100% {
|
| | opacity: 1;
|
| | }
|
| | 50% {
|
| | opacity: 0.5;
|
| | }
|
| | `;
|
| |
|
| | export const ConnectionStatus: React.FC<ConnectionStatusProps> = ({ isConnected }) => {
|
| | return (
|
| | <Chip
|
| | label={isConnected ? 'Backend Online' : 'Backend Offline'}
|
| | deleteIcon={
|
| | <CircleIcon
|
| | sx={{
|
| | fontSize: 6,
|
| | animation: isConnected ? `${pulse} 2s ease-in-out infinite` : 'none',
|
| | }}
|
| | />
|
| | }
|
| | onDelete={() => {}} // Required for deleteIcon to show
|
| | size="small"
|
| | sx={{
|
| | backgroundColor: 'action.hover',
|
| | border: '1px solid',
|
| | borderColor: 'divider',
|
| | color: 'text.primary',
|
| | fontSize: '0.7rem',
|
| | fontWeight: 500,
|
| | height: 'auto',
|
| | '& .MuiChip-label': {
|
| | px: 1,
|
| | py: 0.5,
|
| | },
|
| | '& .MuiChip-deleteIcon': {
|
| | color: isConnected ? '#10b981' : '#ef4444',
|
| | marginRight: 0.5,
|
| | '&:hover': {
|
| | color: isConnected ? '#10b981' : '#ef4444',
|
| | },
|
| | },
|
| | }}
|
| | />
|
| | );
|
| | };
|
| |
|