@@ -3,9 +3,10 @@ import React from 'react';
3
3
import { Flex , useLayoutContext } from '@gravity-ui/uikit' ;
4
4
5
5
import { VDisk } from '../../../components/VDisk/VDisk' ;
6
- import { valueIsDefined } from '../../../utils ' ;
6
+ import type { Erasure } from '../../../types/api/storage ' ;
7
7
import { cn } from '../../../utils/cn' ;
8
8
import type { PreparedVDisk } from '../../../utils/disks/types' ;
9
+ import { isNumeric } from '../../../utils/utils' ;
9
10
import { PDisk } from '../PDisk' ;
10
11
import type { StorageViewContext } from '../types' ;
11
12
import { isVdiskActive , useVDisksWithDCMargins } from '../utils' ;
@@ -19,12 +20,13 @@ const VDISKS_CONTAINER_WIDTH = 300;
19
20
interface DisksProps {
20
21
vDisks ?: PreparedVDisk [ ] ;
21
22
viewContext ?: StorageViewContext ;
23
+ erasure ?: Erasure ;
22
24
}
23
25
24
- export function Disks ( { vDisks = [ ] , viewContext} : DisksProps ) {
26
+ export function Disks ( { vDisks = [ ] , viewContext, erasure } : DisksProps ) {
25
27
const [ highlightedVDisk , setHighlightedVDisk ] = React . useState < string | undefined > ( ) ;
26
28
27
- const vDisksWithDCMargins = useVDisksWithDCMargins ( vDisks ) ;
29
+ const vDisksWithDCMargins = useVDisksWithDCMargins ( vDisks , erasure ) ;
28
30
29
31
const {
30
32
theme : { spaceBaseSize} ,
@@ -40,9 +42,9 @@ export function Disks({vDisks = [], viewContext}: DisksProps) {
40
42
return (
41
43
< div className = { b ( null ) } >
42
44
< Flex direction = { 'row' } gap = { 1 } grow style = { { width : VDISKS_CONTAINER_WIDTH } } >
43
- { vDisks ?. map ( ( vDisk ) => (
45
+ { vDisks ?. map ( ( vDisk , index ) => (
44
46
< VDiskItem
45
- key = { vDisk . StringifiedId }
47
+ key = { vDisk . StringifiedId || index }
46
48
vDisk = { vDisk }
47
49
inactive = { ! isVdiskActive ( vDisk , viewContext ) }
48
50
highlightedVDisk = { highlightedVDisk }
@@ -55,7 +57,7 @@ export function Disks({vDisks = [], viewContext}: DisksProps) {
55
57
< div className = { b ( 'pdisks-wrapper' ) } >
56
58
{ vDisks ?. map ( ( vDisk , index ) => (
57
59
< PDiskItem
58
- key = { vDisk ?. PDisk ?. StringifiedId }
60
+ key = { vDisk ?. PDisk ?. StringifiedId || index }
59
61
vDisk = { vDisk }
60
62
highlightedVDisk = { highlightedVDisk }
61
63
setHighlightedVDisk = { setHighlightedVDisk }
@@ -89,7 +91,7 @@ function VDiskItem({
89
91
const vDiskId = vDisk . StringifiedId ;
90
92
91
93
// show vdisks without AllocatedSize as having average width (#1433)
92
- const minWidth = valueIsDefined ( vDiskToShow . AllocatedSize ) ? undefined : unavailableVDiskWidth ;
94
+ const minWidth = isNumeric ( vDiskToShow . AllocatedSize ) ? undefined : unavailableVDiskWidth ;
93
95
const flexGrow = Number ( vDiskToShow . AllocatedSize ) || 1 ;
94
96
95
97
return (
0 commit comments