Skip to content

Commit 5f16c3f

Browse files
authored
Fix ListView drag preview density (#3493)
1 parent dcd95c3 commit 5f16c3f

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

packages/@react-spectrum/list/src/DragPreview.tsx

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,38 @@ import {Grid} from '@react-spectrum/layout';
1414
import {GridNode} from '@react-types/grid';
1515
import listStyles from './styles.css';
1616
import React from 'react';
17+
import {SpectrumListViewProps} from '@react-types/list';
1718
import {Text} from '@react-spectrum/text';
1819

19-
interface DragPreviewProps {
20+
interface DragPreviewProps<T> {
2021
item: GridNode<any>,
2122
itemCount: number,
22-
itemHeight: number
23+
itemHeight: number,
24+
density: SpectrumListViewProps<T>['density']
2325
}
2426

25-
export function DragPreview(props: DragPreviewProps) {
27+
export function DragPreview(props: DragPreviewProps<unknown>) {
2628
let {
2729
item,
2830
itemCount,
29-
itemHeight
31+
itemHeight,
32+
density
3033
} = props;
3134

3235
let isDraggingMultiple = itemCount > 1;
3336

3437
return (
35-
<div style={{height: itemHeight}} className={classNames(listStyles, 'react-spectrum-ListViewItem', 'react-spectrum-ListViewItem-dragPreview', {'react-spectrum-ListViewItem-dragPreview--multiple': isDraggingMultiple})}>
38+
<div
39+
style={{height: itemHeight}}
40+
className={
41+
classNames(
42+
listStyles,
43+
'react-spectrum-ListViewItem',
44+
'react-spectrum-ListViewItem-dragPreview',
45+
{'react-spectrum-ListViewItem-dragPreview--multiple': isDraggingMultiple},
46+
`react-spectrum-ListViewItem-dragPreview--${density}`
47+
)
48+
}>
3649
<Grid UNSAFE_className={listStyles['react-spectrum-ListViewItem-grid']}>
3750
<SlotProvider
3851
slots={{

packages/@react-spectrum/list/src/ListView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ function ListView<T extends object>(props: SpectrumListViewProps<T>, ref: DOMRef
266266
let item = state.collection.getItem(dragState.draggedKey);
267267
let itemCount = dragState.draggingKeys.size;
268268
let itemHeight = layout.getLayoutInfo(dragState.draggedKey).rect.height;
269-
return <SpectrumDragPreview item={item} itemCount={itemCount} itemHeight={itemHeight} />;
269+
return <SpectrumDragPreview item={item} itemCount={itemCount} itemHeight={itemHeight} density={density} />;
270270
}}
271271
</DragPreview>
272272
}

packages/@react-spectrum/list/src/styles.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,16 @@
399399
border-radius: var(--spectrum-alias-border-radius-regular);
400400
background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));
401401

402+
&.react-spectrum-ListViewItem-dragPreview--compact {
403+
padding-top: var(--spectrum-listview-item-compact-padding-y);
404+
padding-bottom: var(--spectrum-listview-item-compact-padding-y);
405+
}
406+
407+
&.react-spectrum-ListViewItem-dragPreview--spacious {
408+
padding-top: var(--spectrum-listview-item-spacious-padding-y);
409+
padding-bottom: var(--spectrum-listview-item-spacious-padding-y);
410+
}
411+
402412
.react-spectrum-ListViewItem-grid {
403413
grid-template-areas:
404414
"thumbnail content . badge"

0 commit comments

Comments
 (0)