angular / angular/components

bug(drag-drop): Slot content not visible when we start dragging an element

Open
#27,872 4 comments 0 reactions 0 assignees View on GitHub
area: cdk/drag-drop P4
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Is this a regression?

- [ ] Yes, this behavior used to work in the previous version

### The previous version in which this bug was not present was

_No response_

### Description

Hi,

Background:
I am creating a reusable dynamic list component which also has the ability to drag and drop items in a list.
This component uses **slots** to dynamically project content from the consumer component.

Problem:
The component renders correctly.
But when I start dragging an item, the content in the slot is not visible.

Does anyone know how to solve this issue or any workaround for this?

@angular/cdk
@angular/cdk/drag-drop

Thanks!

### Reproduction

StackBlitz link: https://stackblitz.com/edit/stackblitz-starters-jbsaba?file=src%2Fmain.ts
Steps to reproduce:
1. Click on "Item 1 in slot" and start dragging it.
2. Notice that the text "Item 1 in slot" is not visible while you are dragging the item.

### Expected Behavior

Any content in a slot element should be visible while dragging the element.

### Actual Behavior

Content in the slot is not visible while you are dragging the item.

### Environment

- Angular: 16.2.7
- CDK/Material: 16.2.6
- Browser(s): Chrome
- Operating System: macOS

### REASON -
I am still debugging but found the reason behind this problem.
As per documentation,
"When a cdkDrag element is picked up, it will create a preview element visible while dragging."
This causes another slot element to be created with the same name which is why we don't see its content.

Still trying to find a solution.

Contributor guide

Open the contributing guide

Research direction

Open the linked StackBlitz reproduction and start with src/main.ts. Drag “Item 1 in slot” to confirm that projected slot content is missing from the drag preview. Done means the slot text remains visible while dragging, with the reproduction steps still passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.