{ if (!isSelected) e.currentTarget.style.background = 'rgba(14,165,233,0.05)'; }}
+ onMouseLeave={(e) => { e.currentTarget.style.background = rowBg; }}
+ >
+ | toggleRowSelection(finding.id)}>
+ {selectedRowIds.has(String(finding.id))
+ ?
+ :
+ }
+ |
+
+
+ |
+ { if (queued) return; setSelectedIds((prev) => { const next = new Set(prev); if (next.has(finding.id)) next.delete(finding.id); else next.add(finding.id); return next; }); setLastClickedId(finding.id); }}>
+
+ |
+ {visibleCols.map((col) => (
+ { setAtlasSelectedHostId(hostId); setAtlasSelectedHostName(finding.hostName || finding.ipAddress || ''); setAtlasSelectedFindingId(finding.id || null); setAtlasPanelOpen(true); }} />
+ ))}
+
+ );
+ }
+ // Render grouped host header + expandable sub-rows
+ const group = item.group;
+ const isExpanded = expandedHosts.has(group.hostKey);
+ const sc = severityColor(group.highestVrrGroup);
+ return (
+
+ {/* Host group header — uses same columns as regular rows */}
+ toggleHostExpand(group.hostKey)}
+ style={{
+ borderBottom: '1px solid rgba(139,92,246,0.15)',
+ background: isExpanded ? 'rgba(139,92,246,0.06)' : 'rgba(15,26,46,0.5)',
+ cursor: 'pointer',
+ }}
+ onMouseEnter={(e) => { e.currentTarget.style.background = 'rgba(139,92,246,0.08)'; }}
+ onMouseLeave={(e) => { e.currentTarget.style.background = isExpanded ? 'rgba(139,92,246,0.06)' : 'rgba(15,26,46,0.5)'; }}
+ >
+ {/* Expand/collapse icon in first fixed column */}
+ |
+ {isExpanded
+ ?
+ :
+ }
+ |
+ {/* Empty cells for hide + checkbox columns */}
+ |
+ |
+ {/* Render each column cell — show host-level summary data in the matching column positions */}
+ {visibleCols.map((col) => {
+ switch (col.key) {
+ case 'findingId':
+ return (
+
+
+ {group.findings.length} findings
+
+ |
+ );
+ case 'severity':
+ return (
+
+
+ {group.highestSeverity.toFixed(2)}
+ {group.highestVrrGroup}
+
+ |
+ );
+ case 'hostName':
+ return (
+
+
+ {group.hostName || '—'}
+
+ |
+ );
+ case 'ipAddress':
+ return (
+
+
+ {group.ipAddress || '—'}
+
+ |
+ );
+ case 'cves':
+ return (
+
+
+ {group.cveSet.size} CVE{group.cveSet.size !== 1 ? 's' : ''}
+
+ |
+ );
+ default:
+ return | ;
+ }
+ })}
+
+ {/* Expanded sub-rows — individual findings */}
+ {isExpanded && group.findings.map((finding, idx) => {
+ const isSelected = selectedIds.has(finding.id);
+ const rowBg = isSelected ? 'rgba(14,165,233,0.12)' : (idx % 2 === 0 ? 'rgba(20,30,50,0.5)' : 'rgba(15,24,42,0.5)');
+ const queued = isQueued(finding.id);
+ return (
+ { if (!isSelected) e.currentTarget.style.background = 'rgba(14,165,233,0.05)'; }}
+ onMouseLeave={(e) => { e.currentTarget.style.background = rowBg; }}
+ >
+ | toggleRowSelection(finding.id)}>
+ {selectedRowIds.has(String(finding.id))
+ ?
+ :
+ }
+ |
+
+
+ |
+ { if (queued) return; setSelectedIds((prev) => { const next = new Set(prev); if (next.has(finding.id)) next.delete(finding.id); else next.add(finding.id); return next; }); setLastClickedId(finding.id); }}>
+
+ |
+ {visibleCols.map((col) => (
+ { setAtlasSelectedHostId(hostId); setAtlasSelectedHostName(finding.hostName || finding.ipAddress || ''); setAtlasSelectedFindingId(finding.id || null); setAtlasPanelOpen(true); }} />
+ ))}
+
+ );
+ })}
+
+ );
+ })}
+ {groupedRenderList.length === 0 && (
+