feat(usage): enhance ServiceHealthCard with scrollable health grid

This commit is contained in:
Supra4E8C
2026-02-14 15:03:02 +08:00
parent a2507b1373
commit 52cf9d86c0
2 changed files with 26 additions and 9 deletions

View File

@@ -137,13 +137,11 @@ export function ServiceHealthCard({ usage, loading }: ServiceHealthCardProps) {
</span>
</div>
</div>
<div
className={styles.healthGrid}
ref={gridRef}
style={{
gridTemplateRows: `repeat(${healthData.rows}, 10px)`,
}}
>
<div className={styles.healthGridScroller}>
<div
className={styles.healthGrid}
ref={gridRef}
>
{healthData.blockDetails.map((detail, idx) => {
const isIdle = detail.rate === -1;
const blockStyle = isIdle ? undefined : { backgroundColor: rateToColor(detail.rate) };
@@ -166,6 +164,7 @@ export function ServiceHealthCard({ usage, loading }: ServiceHealthCardProps) {
);
})}
</div>
</div>
<div className={styles.healthLegend}>
<span className={styles.healthLegendLabel}>{t('service_health.oldest')}</span>
<div className={styles.healthLegendColors}>

View File

@@ -975,10 +975,17 @@
background: var(--failure-badge-bg);
}
.healthGridScroller {
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
.healthGrid {
display: grid;
gap: 3px;
grid-auto-flow: column;
grid-template-rows: repeat(7, 10px);
width: fit-content;
margin: 0 auto;
}
@@ -1140,9 +1147,20 @@
}
@include mobile {
.healthCard {
padding: 14px;
gap: 10px;
}
.healthGrid {
grid-template-rows: repeat(7, 6px);
gap: 2px;
margin: 0;
}
.healthBlockWrapper {
width: 8px;
height: 8px;
width: 6px;
height: 6px;
}
.healthTooltip {