-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Custom getKeysForDrag bug - Drag and drop selected items seperatly with GridList #8162
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
Comments
Discovered that this behaviour is hardcoded. let getKeys = (key: Key) => {
// The clicked item is always added to the drag. If it is selected, then all of the
// other selected items are also dragged. If it is not selected, the only the clicked
// item is dragged. This matches native macOS behavior.
let keys = new Set(
selectionManager.isSelected(key)
? new Set([...selectionManager.selectedKeys].filter((key) => !!collection.getItem(key)))
: [],
);
keys.add(key);
return keys;
}; I propose to receive an optional parameter called I'd like to receive feedback from the contributor. This way, I can implement this improvement if necessary. |
Mind sharing what overall UX you are trying to accomplish with this? We could perhaps provide the |
I'm trying to drag selected items separately. Look at the video to see how the selected items are dragged together. I think your idea is a good option. |
To elaborate, we understand that you want to drag an item independently from the GridList's selection state, but we are curious what high level user experience you are aiming for (would selection be taken into account for other actions? would the user never be able to drag multiple items at once? what kind of app flow would this be used in). As for an example of the idea, I was thinking along the lines of https://react-spectrum.adobe.com/react-aria/useDraggableCollection.html#example where perhaps the |
Provide a general summary of the issue here
The documentation says that
getKeysForDrag
returns the selected items.I want to overwrite this function to drag and drop selected items separately.
Even though I overwrite it, drag and drop don't work as expected.
GridList.bug.mp4
Overwriting
getKeysForDrag
, full example in "Steps to reproduce"🤔 Expected Behavior?
Items of a GridList to be reordered (drag and drop) separately
😯 Current Behavior
All the selected keys are dragged
💁 Possible Solution
I'm not sure, I didn't realize looking at the source code where
onReorder
evaluates theevent.keys
🔦 Context
No response
🖥️ Steps to Reproduce
Repository
You can just clone and run this repository:
https://github.com/JonRC/react-aria-grid-list-bug
Code
Here is the code used in the repository below if you want reproduce by your own
Version
"react-aria-components": "^1.8.0"
What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
Linux, Ubuntu
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response
The text was updated successfully, but these errors were encountered: