diff --git a/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.module.css b/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.module.css index 153b8ca7..0257fb53 100644 --- a/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.module.css +++ b/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.module.css @@ -51,15 +51,26 @@ .labelGroup { display: flex; align-items: center; - gap: 6px; + gap: 8px; + justify-content: space-between; + width: 100%; } -.label, .percentage { font-size: var(--label-font-size); - font-weight: 400; + font-weight: 600; color: var(--sapTextColor, #374151); transition: color 0.3s ease, font-weight 0.3s ease; + text-align: right; + white-space: nowrap; +} + +.label { + font-size: var(--label-font-size); + font-weight: 400; + color: var(--sapTextColor, #6b7280); + transition: color 0.3s ease, font-weight 0.3s ease; + flex: 1; } .label.healthy, diff --git a/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.tsx b/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.tsx index e1824653..8236e8dc 100644 --- a/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.tsx +++ b/src/components/HintsCardsRow/MultiPercentageBar/MultiPercentageBar.tsx @@ -44,17 +44,25 @@ export const MultiPercentageBar: React.FC = ({ style, animationDuration = 400, // Match CSS default }) => { - // Memoize filtered segments + // Memoize filtered segments for rendering only const filteredSegments = useMemo(() => { - return showOnlyNonZero ? segments.filter((segment) => segment.percentage > 0) : segments; + if (showOnlyNonZero) { + const nonZeroSegments = segments.filter((segment) => segment.percentage > 0); + if (nonZeroSegments.length === 0 && segments.length > 0) { + return segments; + } + return nonZeroSegments; + } + return segments; }, [segments, showOnlyNonZero]); if (filteredSegments.length === 0) { return null; } - const primaryPercentage = filteredSegments[0]?.percentage || 0; - const displayLabel = label || 'Healthy'; + const primarySegment = segments[0]; + const primaryPercentage = primarySegment?.percentage || 0; + const displayLabel = label || primarySegment?.label || 'Healthy'; const allHealthy = isHealthy !== undefined ? isHealthy : primaryPercentage === 100; return ( @@ -78,10 +86,10 @@ export const MultiPercentageBar: React.FC = ({ {showLabels && (
+ {displayLabel} {showPercentage && ( {primaryPercentage}% )} - {displayLabel}
)}