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

Refactor DroppableContainers object into a custom Map instance #372

Merged
merged 3 commits into from
Jul 21, 2021

Conversation

clauderic
Copy link
Owner

@clauderic clauderic commented Jul 21, 2021

Fixes #125

Refactored DroppableContainers type from Record<UniqueIdentifier, DroppableContainer to a custom instance that extends the Map constructor and adds a few other methods such as toArray(), getEnabled() and getNodeFor(id)

@changeset-bot
Copy link

changeset-bot bot commented Jul 21, 2021

🦋 Changeset detected

Latest commit: aa9349c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@dnd-kit/core Major
@dnd-kit/sortable Major
@dnd-kit/modifiers Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link
Contributor

github-actions bot commented Jul 21, 2021

Size Change: +401 B (+1%)

Total Size: 60.7 kB

Filename Size Change
packages/core/dist/core.cjs.development.js 15.9 kB +154 B (+1%)
packages/core/dist/core.cjs.production.min.js 10.1 kB +116 B (+1%)
packages/core/dist/core.esm.js 15.7 kB +135 B (+1%)
packages/sortable/dist/sortable.cjs.development.js 3.9 kB -1 B (0%)
packages/sortable/dist/sortable.cjs.production.min.js 2.55 kB +2 B (0%)
packages/sortable/dist/sortable.esm.js 3.78 kB -5 B (0%)
ℹ️ View Unchanged
Filename Size
packages/accessibility/dist/accessibility.cjs.development.js 640 B
packages/accessibility/dist/accessibility.cjs.production.min.js 486 B
packages/accessibility/dist/accessibility.esm.js 503 B
packages/accessibility/dist/index.js 148 B
packages/core/dist/index.js 141 B
packages/modifiers/dist/index.js 144 B
packages/modifiers/dist/modifiers.cjs.development.js 837 B
packages/modifiers/dist/modifiers.cjs.production.min.js 613 B
packages/modifiers/dist/modifiers.esm.js 760 B
packages/sortable/dist/index.js 144 B
packages/utilities/dist/index.js 144 B
packages/utilities/dist/utilities.cjs.development.js 1.64 kB
packages/utilities/dist/utilities.cjs.production.min.js 989 B
packages/utilities/dist/utilities.esm.js 1.54 kB

compressed-size-action

clauderic and others added 2 commits July 21, 2021 15:30
This prevents potential race conditions in the mount and cleanup effects of `useDraggable` and `useDroppable`. It's possible for the clean-up effect to run after another React component using `useDraggable` or `useDroppable` mounts, which causes the newly mounted element to accidentally be un-registered.

Adding a unique key that is tied to the component instance where the `useDraggable` or `useDroppable` hook is invoked fixes these types of race conditions.
@clauderic clauderic merged commit dbc9601 into master Jul 21, 2021
@clauderic clauderic deleted the droppable-container-map branch July 21, 2021 21:46
@github-actions github-actions bot mentioned this pull request Jul 21, 2021
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.

Race condition with useDraggable and useDroppable register / un-register effects
1 participant