@@ -3,9 +3,10 @@ import React from 'react';
33import { Flex , useLayoutContext } from '@gravity-ui/uikit' ;
44
55import { VDisk } from '../../../components/VDisk/VDisk' ;
6- import { valueIsDefined } from '../../../utils ' ;
6+ import type { Erasure } from '../../../types/api/storage ' ;
77import { cn } from '../../../utils/cn' ;
88import type { PreparedVDisk } from '../../../utils/disks/types' ;
9+ import { isNumeric } from '../../../utils/utils' ;
910import { PDisk } from '../PDisk' ;
1011import type { StorageViewContext } from '../types' ;
1112import { isVdiskActive , useVDisksWithDCMargins } from '../utils' ;
@@ -19,12 +20,13 @@ const VDISKS_CONTAINER_WIDTH = 300;
1920interface DisksProps {
2021 vDisks ?: PreparedVDisk [ ] ;
2122 viewContext ?: StorageViewContext ;
23+ erasure ?: Erasure ;
2224}
2325
24- export function Disks ( { vDisks = [ ] , viewContext} : DisksProps ) {
26+ export function Disks ( { vDisks = [ ] , viewContext, erasure } : DisksProps ) {
2527 const [ highlightedVDisk , setHighlightedVDisk ] = React . useState < string | undefined > ( ) ;
2628
27- const vDisksWithDCMargins = useVDisksWithDCMargins ( vDisks ) ;
29+ const vDisksWithDCMargins = useVDisksWithDCMargins ( vDisks , erasure ) ;
2830
2931 const {
3032 theme : { spaceBaseSize} ,
@@ -40,9 +42,9 @@ export function Disks({vDisks = [], viewContext}: DisksProps) {
4042 return (
4143 < div className = { b ( null ) } >
4244 < Flex direction = { 'row' } gap = { 1 } grow style = { { width : VDISKS_CONTAINER_WIDTH } } >
43- { vDisks ?. map ( ( vDisk ) => (
45+ { vDisks ?. map ( ( vDisk , index ) => (
4446 < VDiskItem
45- key = { vDisk . StringifiedId }
47+ key = { vDisk . StringifiedId || index }
4648 vDisk = { vDisk }
4749 inactive = { ! isVdiskActive ( vDisk , viewContext ) }
4850 highlightedVDisk = { highlightedVDisk }
@@ -55,7 +57,7 @@ export function Disks({vDisks = [], viewContext}: DisksProps) {
5557 < div className = { b ( 'pdisks-wrapper' ) } >
5658 { vDisks ?. map ( ( vDisk , index ) => (
5759 < PDiskItem
58- key = { vDisk ?. PDisk ?. StringifiedId }
60+ key = { vDisk ?. PDisk ?. StringifiedId || index }
5961 vDisk = { vDisk }
6062 highlightedVDisk = { highlightedVDisk }
6163 setHighlightedVDisk = { setHighlightedVDisk }
@@ -89,7 +91,7 @@ function VDiskItem({
8991 const vDiskId = vDisk . StringifiedId ;
9092
9193 // 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 ;
9395 const flexGrow = Number ( vDiskToShow . AllocatedSize ) || 1 ;
9496
9597 return (
0 commit comments