Skip to content

Commit c00fe9f

Browse files
committed
fix: memory fixes
1 parent 31fcee6 commit c00fe9f

File tree

4 files changed

+84
-89
lines changed

4 files changed

+84
-89
lines changed

src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemoryDetailsSection.scss

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
height: 20px;
1919
}
2020

21-
&__segments-container {
21+
&__memory-segments-list {
22+
--g-definition-list-item-gap: var(--g-spacing-2);
2223
margin-bottom: var(--g-spacing-4);
2324
}
2425

@@ -31,10 +32,6 @@
3132
border-radius: 50%;
3233
}
3334

34-
&__segment-definition-list {
35-
flex: 1;
36-
}
37-
3835
&__segment-progress {
3936
flex-shrink: 0;
4037

src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemoryDetailsSection.tsx

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import React from 'react';
22

33
import {Flex, Text} from '@gravity-ui/uikit';
44

5-
import i18n from '../../../../../components/MemoryViewer/i18n';
5+
import memoryI18n from '../../../../../components/MemoryViewer/i18n';
66
import {getMemorySegments} from '../../../../../components/MemoryViewer/utils';
77
import {ProgressWrapper} from '../../../../../components/ProgressWrapper';
88
import type {TMemoryStats} from '../../../../../types/api/nodes';
99
import {cn} from '../../../../../utils/cn';
1010
import {formatStorageValuesToGb} from '../../../../../utils/dataFormatters/dataFormatters';
1111
import {safeParseNumber} from '../../../../../utils/utils';
1212

13-
import {MemorySegmentItem} from './MemorySegmentItem';
13+
import {MemorySegmentsList} from './MemorySegmentsList';
1414

1515
import './MemoryDetailsSection.scss';
1616

@@ -48,7 +48,7 @@ export function MemoryDetailsSection({memoryStats}: MemoryDetailsSectionProps) {
4848
<Flex direction="column" alignItems="flex-start" gap="3">
4949
<div className={b('header')}>
5050
<Text variant="body-1" className={b('title')}>
51-
{i18n('text_memory-details')}
51+
{memoryI18n('text_memory-details')}
5252
</Text>
5353
</div>
5454
<Flex direction="column" alignItems="flex-start" gap="4" width="100%">
@@ -62,16 +62,10 @@ export function MemoryDetailsSection({memoryStats}: MemoryDetailsSectionProps) {
6262
width="full"
6363
/>
6464
</div>
65-
<Flex
66-
direction="column"
67-
alignItems="flex-start"
68-
gap="2"
69-
className={b('segments-container')}
70-
>
71-
{displaySegments.map((segment) => (
72-
<MemorySegmentItem key={segment.key} segment={segment} />
73-
))}
74-
</Flex>
65+
<MemorySegmentsList
66+
segments={displaySegments}
67+
className={b('memory-segments-list')}
68+
/>
7569
</Flex>
7670
</Flex>
7771
);

src/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemorySegmentItem.tsx

Lines changed: 0 additions & 71 deletions
This file was deleted.
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import React from 'react';
2+
3+
import {DefinitionList, Flex, Progress, Text} from '@gravity-ui/uikit';
4+
5+
import type {MemorySegment} from '../../../../../components/MemoryViewer/utils';
6+
import {getMemorySegmentColor} from '../../../../../components/MemoryViewer/utils';
7+
import progressI18n from '../../../../../components/ProgressWrapper/i18n';
8+
import {cn} from '../../../../../utils/cn';
9+
import {formatStorageValuesToGb} from '../../../../../utils/dataFormatters/dataFormatters';
10+
11+
const b = cn('memory-details');
12+
13+
interface MemorySegmentsListProps {
14+
segments: MemorySegment[];
15+
className?: string;
16+
}
17+
18+
export function MemorySegmentsList({segments, className}: MemorySegmentsListProps) {
19+
// TODO: Stretch content https://github.com/gravity-ui/uikit/issues/2353
20+
return (
21+
<DefinitionList nameMaxWidth={200} responsive className={className}>
22+
{segments.map((segment) => {
23+
const segmentColor = getMemorySegmentColor(segment.key);
24+
const [valueFormatted, capacityFormatted] = formatStorageValuesToGb(
25+
segment.value,
26+
segment.capacity,
27+
);
28+
const valueText = segment.capacity
29+
? progressI18n('context_capacity-usage', {
30+
value: valueFormatted,
31+
capacity: capacityFormatted,
32+
})
33+
: valueFormatted;
34+
const progressValue = segment.capacity
35+
? (segment.value / segment.capacity) * 100
36+
: 100;
37+
const progressStyle: React.CSSProperties & Record<string, string> = {
38+
'--g-progress-filled-background-color': segmentColor,
39+
};
40+
41+
return (
42+
<DefinitionList.Item
43+
key={segment.key}
44+
name={
45+
<Flex alignItems="center" gap="1">
46+
<div
47+
className={b('segment-indicator')}
48+
style={{backgroundColor: segmentColor}}
49+
/>
50+
<Text variant="body-1" color="secondary">
51+
{segment.label}
52+
</Text>
53+
</Flex>
54+
}
55+
>
56+
<Flex alignItems="center" gap="3">
57+
<div className={b('segment-progress')}>
58+
<div style={progressStyle}>
59+
<Progress
60+
value={progressValue}
61+
size="s"
62+
className={b('progress-bar')}
63+
/>
64+
</div>
65+
</div>
66+
<Text variant="body-1" color="secondary">
67+
{valueText}
68+
</Text>
69+
</Flex>
70+
</DefinitionList.Item>
71+
);
72+
})}
73+
</DefinitionList>
74+
);
75+
}

0 commit comments

Comments
 (0)