-
Notifications
You must be signed in to change notification settings - Fork 344
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
Implement new drag-and-drop engine #598
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
This will result in duplicate history entries if the item has a resolveData method. This is difficult to prevent without a deferredDispatch method, similar to that being explored in #598.
This will result in duplicate history entries if the item has a resolveData method. This is difficult to prevent without a deferredDispatch method, similar to that being explored in #598.
This will result in duplicate history entries if the item has a resolveData method. This is difficult to prevent without a deferredDispatch method, similar to that being explored in #598.
This will result in duplicate history entries if the item has a resolveData method. This is difficult to prevent without a deferredDispatch method, similar to that being explored in #598.
This will result in duplicate history entries if the item has a resolveData method. This is difficult to prevent without a deferredDispatch method, similar to that being explored in #598.
@chrisvxd This sounds very exciting. Dnd kit will really be a good upgrade. May I know, if there are any estimates of when this will be ready to use. Both stable and beta version of it. |
Thanks @princebansal - we don't have a timeline yet. It's slow progress as it's a non-trivial implementation. I would like to get it out by end of October in v0.17, but that's not based on anything! |
packages/core/components/DraggableComponent/collision/dynamic/index.ts
Outdated
Show resolved
Hide resolved
This is no longer required with refactored NestedDroppablePlugin, and keeping it causes issues.
Implement a new drag-and-drop engine using the experimental dnd-kit release. This is a backwards compatible upgrade, focused on two new pieces of functionality:
Kapture_2024-11-23_at_17.36.04.mp4
This implementation includes additional periphery features:
Closes #556, closes #481, closes #123, closes #455, closes #520, closes #718
Testing
Quick start
0.17.0-canary.2d82115
Testing guide
"@measured/puck": "0.17.0-canary.XXXXXX"
What to test
Known issues
Invalid instance type
error onDragDropRegistry.register
NotFoundError: Failed to execute 'setPointerCapture' on 'Element': No active pointer with the given id is found.
(requires upstream fix)dnd.disableAutoScroll
behaviour ignoredpointerup
event not being listened to on document changedragRef
(which should also be renamed toref
to make more generic)Feedback
It's difficult to select the parent item, especially in custom interfaces - consider a "select parent" action in the action barIf the DropZone is full and has no padding, you can't drag it - it just selects the parent item.Difficult to solve for. Might be easier with drag-and-drop in outline in Improve Outline UI #730Implementation details
NestedDroppablePlugin
for detecting the appropriate droppable when using nested layouts.Implementation tasks
elementFromPoint
.drag
permission behaviourBonus
Follow-ons