import React from 'react'; import { Shield } from 'lucide-react'; // --------------------------------------------------------------------------- // AtlasBadge — small inline pill badge for the Host column on ReportingPage. // Shows Atlas action plan coverage status for a given host. // // Props: // hostId — numeric host identifier // atlasStatus — { host_id, has_action_plan, plan_count, synced_at } or undefined // onClick — callback when badge is clicked (opens slide-out panel) // --------------------------------------------------------------------------- const warningStyle = { display: 'inline-flex', alignItems: 'center', gap: '3px', borderRadius: '9999px', padding: '1px 6px', fontFamily: "'JetBrains Mono', monospace", fontSize: '0.58rem', fontWeight: 700, lineHeight: 1, cursor: 'pointer', marginLeft: '6px', background: 'rgba(245,158,11,0.12)', border: '1px solid rgba(245,158,11,0.4)', color: '#F59E0B', }; const successStyle = { display: 'inline-flex', alignItems: 'center', gap: '3px', borderRadius: '9999px', padding: '1px 6px', fontFamily: "'JetBrains Mono', monospace", fontSize: '0.58rem', fontWeight: 700, lineHeight: 1, cursor: 'pointer', marginLeft: '6px', background: 'rgba(16,185,129,0.12)', border: '1px solid rgba(16,185,129,0.4)', color: '#10B981', }; export default function AtlasBadge({ hostId, atlasStatus, onClick }) { // No status data — render nothing if (!atlasStatus) return null; const hasPlan = atlasStatus.plan_count > 0; const style = hasPlan ? successStyle : warningStyle; const label = hasPlan ? String(atlasStatus.plan_count) : '0'; return ( { e.stopPropagation(); if (onClick) onClick(hostId); }} data-testid="atlas-badge" > {label} ); }