SpoolBuddyStatusBar.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { useTranslation } from 'react-i18next';
  2. interface Alert {
  3. type: 'warning' | 'error' | 'info';
  4. message: string;
  5. }
  6. interface SpoolBuddyStatusBarProps {
  7. alert?: Alert | null;
  8. }
  9. export function SpoolBuddyStatusBar({ alert }: SpoolBuddyStatusBarProps) {
  10. const { t } = useTranslation();
  11. const statusColor = !alert
  12. ? 'bg-bambu-green'
  13. : alert.type === 'error'
  14. ? 'bg-red-500'
  15. : alert.type === 'warning'
  16. ? 'bg-amber-500'
  17. : 'bg-bambu-green';
  18. const borderColor = !alert
  19. ? 'border-bambu-dark-tertiary'
  20. : alert.type === 'error'
  21. ? 'border-red-500'
  22. : alert.type === 'warning'
  23. ? 'border-amber-500'
  24. : 'border-bambu-dark-tertiary';
  25. return (
  26. <div className={`h-9 bg-bambu-dark-secondary border-t-2 ${borderColor} flex items-center px-3 gap-3 shrink-0`}>
  27. {/* Status LED */}
  28. <div className={`w-3.5 h-3.5 rounded-full ${statusColor}`} />
  29. {/* Status message */}
  30. <div className="flex-1 text-sm text-white/50 truncate">
  31. {alert ? (
  32. <span>{alert.message}</span>
  33. ) : (
  34. <span className="text-bambu-green">{t('spoolbuddy.status.systemReady', 'System Ready')}</span>
  35. )}
  36. </div>
  37. </div>
  38. );
  39. }