@@ -8,7 +8,7 @@ import {cn} from '../../../utils/cn';
88import type { PreparedVDisk } from '../../../utils/disks/types' ;
99import { PDisk } from '../PDisk' ;
1010import type { StorageViewContext } from '../types' ;
11- import { isVdiskActive } from '../utils' ;
11+ import { isVdiskActive , useVDisksWithDCMargins } from '../utils' ;
1212
1313import './Disks.scss' ;
1414
@@ -24,6 +24,8 @@ interface DisksProps {
2424export function Disks ( { vDisks = [ ] , viewContext} : DisksProps ) {
2525 const [ highlightedVDisk , setHighlightedVDisk ] = React . useState < string | undefined > ( ) ;
2626
27+ const vDisksWithDCMargins = useVDisksWithDCMargins ( vDisks ) ;
28+
2729 const {
2830 theme : { spaceBaseSize} ,
2931 } = useLayoutContext ( ) ;
@@ -37,26 +39,28 @@ export function Disks({vDisks = [], viewContext}: DisksProps) {
3739
3840 return (
3941 < div className = { b ( null ) } >
40- < Flex direction = { 'row' } gap = { 1 } grow style = { { width : VDISKS_CONTAINER_WIDTH } } >
41- { vDisks ?. map ( ( vDisk ) => (
42+ < Flex direction = { 'row' } grow style = { { width : VDISKS_CONTAINER_WIDTH } } >
43+ { vDisks ?. map ( ( vDisk , index ) => (
4244 < VDiskItem
4345 key = { vDisk . StringifiedId }
4446 vDisk = { vDisk }
4547 inactive = { ! isVdiskActive ( vDisk , viewContext ) }
4648 highlightedVDisk = { highlightedVDisk }
4749 setHighlightedVDisk = { setHighlightedVDisk }
4850 unavailableVDiskWidth = { unavailableVDiskWidth }
51+ withDCMargin = { vDisksWithDCMargins . includes ( index ) }
4952 />
5053 ) ) }
5154 </ Flex >
5255
5356 < div className = { b ( 'pdisks-wrapper' ) } >
54- { vDisks ?. map ( ( vDisk ) => (
57+ { vDisks ?. map ( ( vDisk , index ) => (
5558 < PDiskItem
5659 key = { vDisk ?. PDisk ?. StringifiedId }
5760 vDisk = { vDisk }
5861 highlightedVDisk = { highlightedVDisk }
5962 setHighlightedVDisk = { setHighlightedVDisk }
63+ withDCMargin = { vDisksWithDCMargins . includes ( index ) }
6064 />
6165 ) ) }
6266 </ div >
@@ -70,6 +74,7 @@ interface DisksItemProps {
7074 highlightedVDisk : string | undefined ;
7175 setHighlightedVDisk : ( id : string | undefined ) => void ;
7276 unavailableVDiskWidth ?: number ;
77+ withDCMargin ?: boolean ;
7378}
7479
7580function VDiskItem ( {
@@ -78,6 +83,7 @@ function VDiskItem({
7883 inactive,
7984 setHighlightedVDisk,
8085 unavailableVDiskWidth,
86+ withDCMargin,
8187} : DisksItemProps ) {
8288 // Do not show PDisk popup for VDisk
8389 const vDiskToShow = { ...vDisk , PDisk : undefined } ;
@@ -89,7 +95,10 @@ function VDiskItem({
8995 const flexGrow = Number ( vDiskToShow . AllocatedSize ) || 1 ;
9096
9197 return (
92- < div style = { { flexGrow, minWidth} } className = { b ( 'vdisk-item' ) } >
98+ < div
99+ style = { { flexGrow, minWidth} }
100+ className = { b ( 'vdisk-item' , { [ 'with-dc-margin' ] : withDCMargin } ) }
101+ >
93102 < VDisk
94103 data = { vDiskToShow }
95104 compact
@@ -103,7 +112,7 @@ function VDiskItem({
103112 ) ;
104113}
105114
106- function PDiskItem ( { vDisk, highlightedVDisk, setHighlightedVDisk} : DisksItemProps ) {
115+ function PDiskItem ( { vDisk, highlightedVDisk, setHighlightedVDisk, withDCMargin } : DisksItemProps ) {
107116 const vDiskId = vDisk . StringifiedId ;
108117
109118 if ( ! vDisk . PDisk ) {
@@ -112,7 +121,7 @@ function PDiskItem({vDisk, highlightedVDisk, setHighlightedVDisk}: DisksItemProp
112121
113122 return (
114123 < PDisk
115- className = { b ( 'pdisk-item' ) }
124+ className = { b ( 'pdisk-item' , { [ 'with-dc-margin' ] : withDCMargin } ) }
116125 progressBarClassName = { b ( 'pdisk-progress-bar' ) }
117126 data = { vDisk . PDisk }
118127 showPopup = { highlightedVDisk === vDiskId }
0 commit comments