{paneGrouped.map(([key, comps]) => {
// Count/hide use the active view's visible set; the panels themselves are always
// mounted (CSS hides the non-matching ones). An all-hidden group collapses via the
// `groupHidden` class — a parent attribute flip that keeps its children mounted.
const visibleCount = comps.reduce((n, c) => n + (visibleIds.has(c.idStr) ? 1 : 0), 0);
return (
{groupBy !== 'none' && (
{groupBy === 'status' ? displayChangeType(key as ChangeType) : key}
{visibleCount}
)}
{comps.map((c) => (
))}
);
})}
{filteredComponents.length === 0 && (
)}