Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions react/src/components/NumberWithUnit.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import {
convertBinarySizeUnit,
convertDecimalSizeUnit,
SizeUnit,
sizeUnitToBinarySizeUnit,
sizeUnitToDecimalSizeUnit,
} from '../helper';
import Flex from './Flex';
import { Typography } from 'antd';

interface NumberWithUnitProps {
numberUnit: string;
targetUnit: SizeUnit;
unitType: 'binary' | 'decimal';
postfix?: string;
}

const NumberWithUnit = ({
numberUnit,
targetUnit,
unitType,
postfix,
}: NumberWithUnitProps) => {
const convertedByTargetUnit =
unitType === 'binary'
? convertBinarySizeUnit(numberUnit, targetUnit, 2, true)
: convertDecimalSizeUnit(numberUnit, targetUnit, 2, true);
const convertedByAuto =
unitType === 'binary'
? convertBinarySizeUnit(numberUnit, 'auto', 2, true)
: convertDecimalSizeUnit(numberUnit, 'auto', 2, true);
return (
<Flex gap="xxs">
<Typography.Text>
{Number(convertedByTargetUnit?.numberFixed).toString()}
{postfix && postfix}
</Typography.Text>
<Typography.Text type="secondary">
{unitType === 'binary'
? sizeUnitToBinarySizeUnit(convertedByTargetUnit?.unit as SizeUnit)
: sizeUnitToDecimalSizeUnit(convertedByTargetUnit?.unit as SizeUnit)}
{Number(convertedByTargetUnit?.numberFixed).toString() === '0' &&
Number(convertedByAuto?.numberFixed).toString() !== '0' &&
`(${Number(convertedByAuto?.numberFixed).toString()} ${
unitType === 'binary'
? sizeUnitToBinarySizeUnit(convertedByAuto?.unit as SizeUnit)
: sizeUnitToDecimalSizeUnit(convertedByAuto?.unit as SizeUnit)
})`}
</Typography.Text>
</Flex>
);
};

export default NumberWithUnit;
40 changes: 29 additions & 11 deletions react/src/components/ResourceNumber.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
} from '../hooks/backendai';
import { useCurrentResourceGroupValue } from '../hooks/useCurrentProject';
import Flex from './Flex';
import NumberWithUnit from './NumberWithUnit';
import { Tooltip, Typography, theme } from 'antd';
import _ from 'lodash';
import { MicrochipIcon } from 'lucide-react';
Expand Down Expand Up @@ -60,18 +61,35 @@ const ResourceNumber: React.FC<ResourceNumberProps> = ({
) : (
type
)}
{mergedResourceSlots?.[type]?.number_format.binary ? (
<NumberWithUnit
numberUnit={amount}
targetUnit="g"
unitType="binary"
postfix={
_.isUndefined(max)
? ''
: max === 'Infinity'
? '~∞'
: `~${formatAmount(max)}`
}
/>
) : (
<>
<Typography.Text>
{formatAmount(amount)}
{_.isUndefined(max)
? null
: max === 'Infinity'
? '~∞'
: `~${formatAmount(max)}`}
</Typography.Text>
<Typography.Text type="secondary">
{mergedResourceSlots?.[type]?.display_unit || ''}
</Typography.Text>
</>
)}

<Typography.Text>
{formatAmount(amount)}
{_.isUndefined(max)
? null
: max === 'Infinity'
? '~∞'
: `~${formatAmount(max)}`}
</Typography.Text>
<Typography.Text type="secondary">
{mergedResourceSlots?.[type]?.display_unit || ''}
</Typography.Text>
{type === 'mem' && opts?.shmem && opts?.shmem > 0 ? (
<Typography.Text
type="secondary"
Expand Down
22 changes: 14 additions & 8 deletions react/src/components/ResourcePresetList.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
import {
filterNonNullItems,
convertBinarySizeUnit,
localeCompare,
filterEmptyItem,
} from '../helper';
import { filterNonNullItems, localeCompare, filterEmptyItem } from '../helper';
import { useSuspendedBackendaiClient, useUpdatableState } from '../hooks';
import Flex from './Flex';
import NumberWithUnit from './NumberWithUnit';
import ResourceNumber from './ResourceNumber';
import ResourcePresetSettingModal from './ResourcePresetSettingModal';
import { ResourcePresetListDeleteMutation } from './__generated__/ResourcePresetListDeleteMutation.graphql';
Expand Down Expand Up @@ -102,8 +98,18 @@ const ResourcePresetList: React.FC<ResourcePresetListProps> = () => {
{
title: t('resourcePreset.SharedMemory'),
dataIndex: 'shared_memory',
render: (text) =>
text ? convertBinarySizeUnit(text + '', 'g')?.numberFixed : '-',
render: (text) => {
if (!text) {
return '-';
}
return (
<NumberWithUnit
numberUnit={text + 'b'}
targetUnit="g"
unitType="binary"
/>
);
},
},
baiClient?.supports('resource-presets-per-resource-group') && {
title: t('general.ResourceGroup'),
Expand Down
7 changes: 5 additions & 2 deletions react/src/components/ResourcePresetSettingModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -238,13 +238,16 @@ const ResourcePresetSettingModal: React.FC<ResourcePresetSettingModalProps> = ({
JSON.parse(resourcePreset?.resource_slots || '{}'),
(value, key) =>
_.includes(key, 'mem')
? convertBinarySizeUnit(value + 'b', 'g')?.numberUnit
? convertBinarySizeUnit(
value + 'b',
value === '0' ? 'g' : 'auto',
)?.numberUnit
: value,
) || {},
shared_memory: resourcePreset?.shared_memory
? convertBinarySizeUnit(
resourcePreset?.shared_memory + 'b',
'g',
resourcePreset?.shared_memory === '0' ? 'g' : 'auto',
Comment thread
nowgnuesLee marked this conversation as resolved.
)?.numberUnit
: null,
}
Expand Down
51 changes: 51 additions & 0 deletions react/src/helper/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,57 @@ export type SizeUnit =
| 'p'
| 'e';

export type BinarySizeUnit =
| 'Bytes'
| 'KiB'
| 'MiB'
| 'GiB'
| 'TiB'
| 'PiB'
| 'EiB';

export type DecimalSizeUnit = 'Bytes' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB' | 'EB';

export function sizeUnitToDecimalSizeUnit(unit: SizeUnit): DecimalSizeUnit {
const unitMap: Record<SizeUnit, DecimalSizeUnit> = {
B: 'Bytes',
K: 'KB',
M: 'MB',
G: 'GB',
T: 'TB',
P: 'PB',
E: 'EB',
b: 'Bytes',
k: 'KB',
m: 'MB',
g: 'GB',
t: 'TB',
p: 'PB',
e: 'EB',
};
return unitMap[unit] || unit;
}

export function sizeUnitToBinarySizeUnit(unit: SizeUnit): BinarySizeUnit {
const unitMap: Record<SizeUnit, BinarySizeUnit> = {
B: 'Bytes',
K: 'KiB',
M: 'MiB',
G: 'GiB',
T: 'TiB',
P: 'PiB',
E: 'EiB',
b: 'Bytes',
k: 'KiB',
m: 'MiB',
g: 'GiB',
t: 'TiB',
p: 'PiB',
e: 'EiB',
};
return unitMap[unit] || unit;
}

function convertSizeUnit(
sizeWithUnit: string | undefined,
targetSizeUnit?: SizeUnit | 'auto',
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -1162,7 +1162,7 @@
"ResourcePresets": "Ressourcenvoreinstellungen",
"Resources": "Ressourcen",
"SHMEMShouldBeSmallerThanMemory": "Gemeinsamer Speicher muss kleiner sein als der Speicher",
"SharedMemory": "Gemeinsamer Speicher (GB)",
"SharedMemory": "Gemeinsamer Speicher",
"Updated": "Ressourcenvoreinstellung aktualisiert"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -1161,7 +1161,7 @@
"ResourcePresets": "Προεπιλογές πόρων",
"Resources": "Πόροι",
"SHMEMShouldBeSmallerThanMemory": "Η κοινόχρηστη μνήμη πρέπει να είναι μικρότερη από τη μνήμη",
"SharedMemory": "Κοινή μνήμη (GB)",
"SharedMemory": "Κοινόχρηστη μνήμη",
"Updated": "Η προεπιλογή πόρων ενημερώθηκε"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1171,7 +1171,7 @@
"ResourcePresets": "Resource Presets",
"Resources": "Resources",
"SHMEMShouldBeSmallerThanMemory": "Shared memory must be smaller than memory",
"SharedMemory": "Shared memory (GB)",
"SharedMemory": "Shared memory",
"Updated": "Resource preset updated"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Recursos preestablecidos",
"Resources": "Recursos",
"SHMEMShouldBeSmallerThanMemory": "La memoria compartida debe ser menor que la memoria",
"SharedMemory": "Memoria compartida (GB)",
"SharedMemory": "Memoria compartida",
"Updated": "Preajuste de recursos actualizado"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -1163,7 +1163,7 @@
"ResourcePresets": "Resurssien esiasetukset",
"Resources": "Resurssit",
"SHMEMShouldBeSmallerThanMemory": "Jaetun muistin on oltava pienempi kuin muistin",
"SharedMemory": "Jaettu muisti (GB)",
"SharedMemory": "Jaettu muisti",
"Updated": "Resurssien esiasetus päivitetty"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Préréglages de ressources",
"Resources": "Ressources",
"SHMEMShouldBeSmallerThanMemory": "La mémoire partagée doit être plus petite que la mémoire",
"SharedMemory": "Mémoire partagée (Go)",
"SharedMemory": "Mémoire partagée",
"Updated": "Préréglage de ressource mis à jour"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -1163,7 +1163,7 @@
"ResourcePresets": "Preset Sumber Daya",
"Resources": "Sumber Daya",
"SHMEMShouldBeSmallerThanMemory": "Memori bersama harus lebih kecil dari memori",
"SharedMemory": "Memori bersama (GB)",
"SharedMemory": "Memori bersama",
"Updated": "Preset sumber daya diperbarui"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -1162,7 +1162,7 @@
"ResourcePresets": "Preimpostazioni delle risorse",
"Resources": "risorse",
"SHMEMShouldBeSmallerThanMemory": "La memoria condivisa deve essere più piccola della memoria",
"SharedMemory": "Memoria condivisa (GB)",
"SharedMemory": "Memoria condivisa",
"Updated": "Preimpostazione delle risorse aggiornata"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -1164,7 +1164,7 @@
"ResourcePresets": "リソースプリセット",
"Resources": "リソース",
"SHMEMShouldBeSmallerThanMemory": "共有メモリはメモリより小さくなければならない",
"SharedMemory": "共有メモリ(GB)",
"SharedMemory": "共有メモリ",
"Updated": "リソースプリセットが更新されました"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -1168,7 +1168,7 @@
"ResourcePresets": "자원 프리셋",
"Resources": "자원",
"SHMEMShouldBeSmallerThanMemory": "공유메모리는 메모리보다 작아야 합니다",
"SharedMemory": "공유메모리 (GB)",
"SharedMemory": "공유메모리",
"Updated": "자원 프리셋이 수정되었습니다"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/mn.json
Original file line number Diff line number Diff line change
Expand Up @@ -1162,7 +1162,7 @@
"ResourcePresets": "Нөөцийн урьдчилсан тохируулга",
"Resources": "Нөөц",
"SHMEMShouldBeSmallerThanMemory": "Хуваалцсан санах ой санах ойноос бага байх ёстой",
"SharedMemory": "Хуваалцсан санах ой (GB)",
"SharedMemory": "Хуваалцсан санах ой",
"Updated": "Нөөцийн урьдчилан тохируулалтыг шинэчилсэн"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/ms.json
Original file line number Diff line number Diff line change
Expand Up @@ -1164,7 +1164,7 @@
"ResourcePresets": "Pratetap Sumber",
"Resources": "Sumber",
"SHMEMShouldBeSmallerThanMemory": "Memori yang dikongsi mestilah lebih kecil daripada memori",
"SharedMemory": "Memori bersama (GB)",
"SharedMemory": "Memori bersama",
"Updated": "Pratetap sumber dikemas kini"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Predefiniowane ustawienia zasobów",
"Resources": "Zasoby",
"SHMEMShouldBeSmallerThanMemory": "Pamięć współdzielona musi być mniejsza niż pamięć",
"SharedMemory": "Pamięć współdzielona (GB)",
"SharedMemory": "Udostępniona pamięć",
"Updated": "Zaktualizowano wstępne ustawienia zasobów"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Predefinições de recursos",
"Resources": "Recursos",
"SHMEMShouldBeSmallerThanMemory": "A memória partilhada deve ser mais pequena do que a memória",
"SharedMemory": "Memória compartilhada (GB)",
"SharedMemory": "Memória compartilhada",
"Updated": "Predefinição de recurso atualizada"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Predefinições de recursos",
"Resources": "Recursos",
"SHMEMShouldBeSmallerThanMemory": "A memória partilhada deve ser mais pequena do que a memória",
"SharedMemory": "Memória compartilhada (GB)",
"SharedMemory": "Memória compartilhada",
"Updated": "Predefinição de recurso atualizada"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Предустановки ресурсов",
"Resources": "Ресурсы",
"SHMEMShouldBeSmallerThanMemory": "Общая память должна быть меньше памяти",
"SharedMemory": "Общая память (ГБ)",
"SharedMemory": "Общая память",
"Updated": "Предустановка ресурса обновлена"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/th.json
Original file line number Diff line number Diff line change
Expand Up @@ -1154,7 +1154,7 @@
"ResourcePresets": "ค่าที่กำหนดไว้ล่วงหน้าของทรัพยากร",
"Resources": "ทรัพยากร",
"SHMEMShouldBeSmallerThanMemory": "หน่วยความจำร่วมต้องน้อยกว่าหน่วยความจำ",
"SharedMemory": "หน่วยความจำร่วม (GB)",
"SharedMemory": "หน่วยความจำที่ใช้ร่วมกัน",
"Updated": "อัปเดตค่าที่กำหนดไว้ล่วงหน้าของทรัพยากรแล้ว"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Kaynak Ön Ayarları",
"Resources": "Kaynaklar",
"SHMEMShouldBeSmallerThanMemory": "Paylaşılan bellek, bellekten daha küçük olmalıdır",
"SharedMemory": "Paylaşılan bellek (GB)",
"SharedMemory": "Paylaşılan Bellek",
"Updated": "Kaynak ön ayarı güncellendi"
},
"session": {
Expand Down
2 changes: 1 addition & 1 deletion resources/i18n/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@
"ResourcePresets": "Cài đặt trước tài nguyên",
"Resources": "Tài nguyên",
"SHMEMShouldBeSmallerThanMemory": "Bộ nhớ dùng chung phải nhỏ hơn bộ nhớ",
"SharedMemory": "Bộ nhớ dùng chung (GB)",
"SharedMemory": "Bộ nhớ chia sẻ",
"Updated": "Đã cập nhật cài đặt trước tài nguyên"
},
"session": {
Expand Down
Loading