Skip to content

Badge

Un composant compact pour afficher des labels, statuts ou categories avec un style colore.

Fichier source : frontend/src/components/Badge.tsx

Props

PropTypeDefaultDescription
childrenReact.ReactNoderequisContenu du badge
variant'success' | 'danger' | 'warning' | 'info' | 'neutral''neutral'Variante de couleur

Variantes

VarianteBackgroundTexteCas d'usage
successemerald-100emerald-700Statut actif, HTTP 2xx
dangerred-100red-700Erreur, HTTP 4xx/5xx
warningamber-100amber-700Avertissement, en attente
infoblue-100blue-700Information, methode HTTP
neutralslate-100slate-600Default, labels generiques

Implementation

tsx
const styles = {
  success: 'bg-emerald-100 text-emerald-700',
  danger: 'bg-red-100 text-red-700',
  warning: 'bg-amber-100 text-amber-700',
  info: 'bg-blue-100 text-blue-700',
  neutral: 'bg-slate-100 text-slate-600',
};

export default function Badge({ children, variant = 'neutral' }: Props) {
  return (
    <span className={`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-semibold ${styles[variant]}`}>
      {children}
    </span>
  );
}

Exemples d'utilisation

tsx
// Methode HTTP
<Badge variant="info">GET</Badge>

// Code de statut reussi
<Badge variant="success">200</Badge>

// Code de statut en erreur
<Badge variant="danger">500</Badge>

// Statut de webhook
<Badge variant={webhook.isActive ? 'success' : 'neutral'}>
  {webhook.isActive ? 'Active' : 'Inactive'}
</Badge>

// Statut conditionnel de log
<Badge variant={(log.httpStatusCode ?? 0) >= 400 ? 'danger' : 'success'}>
  {log.httpStatusCode}
</Badge>

Tests

Voir frontend/src/components/__tests__/Badge.test.tsx pour les tests unitaires Vitest.

Released under the MIT License.