Skip to content

fix: remove inert if user cycles through whole list/dnd multiple times via keyboard dnd #8581

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

LFDanLu
Copy link
Member

@LFDanLu LFDanLu commented Jul 18, 2025

the root cause is because in a virtualizer node reuse/reorder case triggered by the mutation observer, we were removing the node from the hidden nodes list prematurely even though it was going to be readded immediately after, causing the ref count to erroneously increment by 1 again via acceptNode's check

from testing

✅ Pull Request Checklist:

  • Included link to corresponding React Spectrum GitHub Issue.
  • Added/updated unit tests and storybook for this change (for new code or code which already has tests).
  • Filled out test instructions.
  • Updated documentation (if it already exists for this component).
  • Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

Go to virtualized tree DnD/tableview dnd/ any virtualized DnD experience and test keyboard drag and drop. In particular, try starting a keyboard drag session, holding ArrowDown to cycle through the list multiple times, then canceling your drop. You should still be able to navigate to each row after that

🧢 Your Project:

RSP

…s via keyboard dnd

the root cause is because in a virtualizer node reuse/reorder case, we were removing the node from the hidden nodes prematurely even though it was going to be readded immediately after, causing the ref count to erroneously increment by 1 again
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants