diff --git a/frontend/src/components/FlexPanel.tsx b/frontend/src/components/FlexPanel.tsx index bb27b1e..d4da52c 100644 --- a/frontend/src/components/FlexPanel.tsx +++ b/frontend/src/components/FlexPanel.tsx @@ -263,6 +263,16 @@ function Card({ icon: Icon, title, accent, children }: { icon: any; title: strin ); } +// powerLevelLabel spells out the SPE power-level code (L/M/H) in full. +function powerLevelLabel(pl?: string): string { + switch ((pl || '').trim().toUpperCase()) { + case 'L': return 'Low'; + case 'M': return 'Mid'; + case 'H': return 'High'; + default: return pl || ''; + } +} + // onCWSpeed (optional): notified when the operator changes CW speed here, so the // host can keep the WinKeyer (which actually sends the macros) in sync. export function FlexPanel({ onCWSpeed, onReportRST }: { onCWSpeed?: (wpm: number) => void; onReportRST?: (rst: string) => void } = {}) { @@ -795,13 +805,13 @@ export function FlexPanel({ onCWSpeed, onReportRST }: { onCWSpeed?: (wpm: number spe.operate ? 'bg-warning text-warning-foreground border-warning shadow-[0_0_14px] shadow-warning/50' : 'bg-card text-warning border-warning hover:bg-warning-muted')}> {spe.operate ? 'OPERATE' : 'STANDBY'} - - + + {spe.connected ? (spe.tx ? 'TX' : 'RX') : t('flxp.pgOffline')} {spe.connected && ( - - {spe.output_w}W · SWR {Number(spe.swr_ant ?? 0).toFixed(1)} · {spe.temp_c}°C · {spe.power_level} + + {spe.band ? `${spe.band} · ` : ''}{spe.output_w}W · SWR {Number(spe.swr_ant ?? 0).toFixed(1)} · {spe.temp_c}°C · {powerLevelLabel(spe.power_level)} )}