import { useState } from 'react'; import { Menu } from 'lucide-react'; import type { HealthStatus, RadioConfig } from '../types'; import { api } from '../api'; import { toast } from './ui/sonner'; interface StatusBarProps { health: HealthStatus | null; config: RadioConfig | null; onSettingsClick: () => void; onMenuClick?: () => void; } export function StatusBar({ health, config, onSettingsClick, onMenuClick }: StatusBarProps) { const connected = health?.radio_connected ?? false; const [reconnecting, setReconnecting] = useState(false); const handleReconnect = async () => { setReconnecting(true); try { const result = await api.reconnectRadio(); if (result.connected) { toast.success('Reconnected', { description: result.message }); } } catch (err) { toast.error('Reconnection failed', { description: err instanceof Error ? err.message : 'Check radio connection and power', }); } finally { setReconnecting(false); } }; return (
{/* Mobile menu button - only visible on small screens */} {onMenuClick && ( )}

RemoteTerm

{connected ? 'Connected' : 'Disconnected'}
{config && (
{config.name || 'Unnamed'} { navigator.clipboard.writeText(config.public_key); toast.success('Public key copied!'); }} title="Click to copy public key" > {config.public_key.toLowerCase()}
)} {!connected && ( )}
); }