function classNames(...values) { return values.filter(Boolean).join(' '); } function formatBattery(rover) { const percent = rover?.batteryState?.percentDisplay; if (percent == null) return '--'; return `${percent}%`; } function batteryClass(rover) { if (!rover?.batteryState) return 'text-slate-400'; if (rover.batteryState.urgentActive) return 'text-red-400'; if (rover.batteryState.warnActive) return 'text-amber-300'; return 'text-emerald-300'; } export default function RoverRoster({ title, roster = [], emptyText = 'No roster data.', renderActions = null, }) { return (
{title}
} {roster.length === 0 ? ({emptyText}
) : ({rover.name}
{rover.locked ? 'locked' : 'free'} {rover.lockReason && {rover.lockReason}} Battery {formatBattery(rover)}