diff --git a/packages/shared-components/__vis__/linux/__baselines__/room-list/VirtualizedRoomListView/RoomListItemDragOverlayView/RoomListItemDragOverlayView.stories.tsx/default-auto.png b/packages/shared-components/__vis__/linux/__baselines__/room-list/VirtualizedRoomListView/RoomListItemDragOverlayView/RoomListItemDragOverlayView.stories.tsx/default-auto.png index c65679e47f..2e5d6c7a1a 100644 Binary files a/packages/shared-components/__vis__/linux/__baselines__/room-list/VirtualizedRoomListView/RoomListItemDragOverlayView/RoomListItemDragOverlayView.stories.tsx/default-auto.png and b/packages/shared-components/__vis__/linux/__baselines__/room-list/VirtualizedRoomListView/RoomListItemDragOverlayView/RoomListItemDragOverlayView.stories.tsx/default-auto.png differ diff --git a/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.module.css b/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.module.css index fcb2e38ecc..626d60a953 100644 --- a/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.module.css +++ b/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.module.css @@ -72,7 +72,12 @@ .dragging { outline: 1px solid var(--cpd-color-border-interactive-hovered); - background-color: color-mix(in srgb, var(--cpd-color-bg-action-tertiary-hovered) 90%, transparent); + background-color: color-mix(in srgb, var(--cpd-color-bg-action-tertiary-hovered) 95%, transparent); + color: var(--cpd-color-text-primary); +} + +.dragSource .container { + opacity: 0.6; } .content { diff --git a/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.tsx b/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.tsx index b043857425..e867b33b4b 100644 --- a/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.tsx +++ b/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.tsx @@ -150,6 +150,8 @@ export interface RoomListItemViewProps extends Omit ReactNode; + /** Whether this item is the source of an active drag operation */ + isDragSource?: boolean; ref?: Ref; } @@ -165,6 +167,7 @@ export const RoomListItemView = memo(function RoomListItemView({ isFirstItem, isLastItem, renderAvatar, + isDragSource = false, ref, ...props }: RoomListItemViewProps): JSX.Element { @@ -191,6 +194,7 @@ export const RoomListItemView = memo(function RoomListItemView({ [styles.bold]: item.isBold, [styles.firstItem]: isFirstItem, [styles.lastItem]: isLastItem, + [styles.dragSource]: isDragSource, mx_RoomListItemView_selected: isSelected, })} gap="var(--cpd-space-3x)" diff --git a/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemWrapper.tsx b/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemWrapper.tsx index c19209d574..0f45809320 100644 --- a/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemWrapper.tsx +++ b/packages/shared-components/src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemWrapper.tsx @@ -55,12 +55,16 @@ export const RoomListItemWrapper = memo(function RoomListItemWrapper({ */ function DraggableWrapper(props: RoomListItemViewProps): JSX.Element { const item = useViewModel(props.vm); - const { ref: draggableRef, handleRef } = useDraggable({ + const { + ref: draggableRef, + handleRef, + isDragSource, + } = useDraggable({ id: item.id, // We clone the item in the dnd overlay to avoid putting a hole in the list plugins: [Feedback.configure({ feedback: "clone" })], modifiers: [RestrictToVerticalAxis], }); const dndRef = useMergeRefs([draggableRef, handleRef]); - return ; + return ; }