Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drag & Drop #18754

Closed
danroth27 opened this issue Feb 3, 2020 · 10 comments
Closed

Drag & Drop #18754

danroth27 opened this issue Feb 3, 2020 · 10 comments
Labels
affected-medium This issue impacts approximately half of our customers area-blazor Includes: Blazor, Razor Components Components Big Rock This issue tracks a big effort which can span multiple issues enhancement This issue represents an ask for new feature or an enhancement to an existing one feature-blazor-builtin-components Features related to the built in components we ship or could ship in the future Priority:3 Work that is nice to have severity-major This label is used by an internal tool User Story A single user-facing feature. Can be grouped under an epic.
Milestone

Comments

@danroth27
Copy link
Member

danroth27 commented Feb 3, 2020

We'd like to

  • Provide events that users can subscribe to during drag and drop.
  • Have visual cues that shows items being dragged
  • Restrict the locations that items can be dropped including providing visual cues
@danroth27 danroth27 added the area-blazor Includes: Blazor, Razor Components label Feb 3, 2020
@mkArtakMSFT mkArtakMSFT added this to the Next sprint planning milestone Feb 3, 2020
@mkArtakMSFT mkArtakMSFT added the enhancement This issue represents an ask for new feature or an enhancement to an existing one label Feb 3, 2020
@Postlagerkarte
Copy link

Postlagerkarte commented Feb 5, 2020

Hi @danroth27 : Can you please also include #14792 when considering Drag & Drop?

Also I currently face the problem that DataTransfer.Files is null when dropping a file.

So basically it would be great if the all properties of the DragEventArgs are available and we read/write access to them!

@pranavkm
Copy link
Contributor

More context: https://gist.github.com/MackinnonBuck/374e529e9c3fdb9d228214b4cc79e617. @MackinnonBuck's work is in the “t-mabuc/drag-and-drop” branch in the aspnetcore repository (also linked in the writeup).

@mkArtakMSFT mkArtakMSFT added this to the Next sprint planning milestone Jan 8, 2021
@ghost
Copy link

ghost commented Jan 8, 2021

Thanks for contacting us.
We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We will evaluate the request when we are planning the work for the next milestone. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

@mkArtakMSFT mkArtakMSFT added the User Story A single user-facing feature. Can be grouped under an epic. label Jan 31, 2021
@mkArtakMSFT mkArtakMSFT added Priority:2 Work that is important, but not critical for the release Priority:3 Work that is nice to have and removed Priority:2 Work that is important, but not critical for the release labels Jan 31, 2021
@javiercn javiercn added the feature-blazor-builtin-components Features related to the built in components we ship or could ship in the future label Apr 19, 2021
@ghost
Copy link

ghost commented Jul 13, 2021

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

@abspro
Copy link

abspro commented Mar 1, 2022

And how was the lad's internship? Would like to see this get some love.

@danroth27
Copy link
Member Author

After investigating various approaches we've decided that a general purpose drag & drop feature isn't something we can easily add to the Blazor framework due to the following issues:

  • There’s a vast range of possible UX designs/requirements for drag-drop including different combinations of:
    • Things that can be highlighted/ghosted/animated while dragging
    • Rules about what can be dropped where and how to warn/animate violations
    • UI experiences when dragging to the edge of scrollable regions, (e.g., speeding up the scrolling when you drag further, doing rubber-band effects)
    • Interactions with keyboard support and accessibility
  • Trying to support even 80% of requirements would be very expensive and open a long tail of support issues.
  • There isn’t one standard way to do it. The HTML5 drag/drop APIs are not adequate for most real-world apps (for example, they don’t work at all in iOS). There are lots of different 3rd-party libraries, all talking different opinions on what you want to customize.

Fortunately, it can be relatively straightforward to solve drag/drop in a special-case way according to the needs of one specific app because you can pick out one of the many .js drag/drop libraries that happens to do things with the particular UX you want and call it via JS interop. For example, this sample uses draggable.js and JS interop to build a mobile-capable drag-drop calendar UI. We think the Blazor community is best suited to decide which approaches to drag & drop are most useful to package and share.

Since we don't plan to add this as a core feature of Blazor, I'm going to go ahead and close this issue.

@HybridSolutions
Copy link

HybridSolutions commented Mar 17, 2022

@danroth27 It would be interesting that Blazor team could provide a couple of examples from basic to more advanced showing how to integrate Blazor with one of the drag&drop libraries out there, preferably, one that is not deprecated. I feel there's little support for advanced functionalities and articles out there take time to appear. Also, since Bootstrap is the framework used in default templates, it would be interesting to see some examples on how to use BS components and deal with the problem of initialization in Blazor components.

I guess it takes time, but it would be nice to see some examples from the makers with the best practices for easier adoption.

@ghost ghost locked as resolved and limited conversation to collaborators Apr 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affected-medium This issue impacts approximately half of our customers area-blazor Includes: Blazor, Razor Components Components Big Rock This issue tracks a big effort which can span multiple issues enhancement This issue represents an ask for new feature or an enhancement to an existing one feature-blazor-builtin-components Features related to the built in components we ship or could ship in the future Priority:3 Work that is nice to have severity-major This label is used by an internal tool User Story A single user-facing feature. Can be grouped under an epic.
Projects
None yet
Development

No branches or pull requests

8 participants