fix(deps): update react-dnd monorepo to v16 (major) #114
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^7.0.2->^16.0.0^7.0.2->^16.0.0Release Notes
react-dnd/react-dnd (react-dnd)
v16.0.1Compare Source
v16.0.0Compare Source
Major
v15.1.2Compare Source
The utility packages
@react-dnd/invariant,@react-dnd/shallowequal, and@react-dnd/asap(which are forks of popular libraries) have been included in the monorepo and built using the same output mechanisms as thereact-dndcore packages (dual EJS/CSM).@react-dnd/asaphas been simplified to remove the node variant, which relied on deprecated APIsv15.1.1Compare Source
v15.1.0Compare Source
pkg.exportsv15.0.2Compare Source
This release uses output from swc using the 'es2017' target instead of using output from 'tsc' using the 'ESNext' target.
v15.0.1Compare Source
This release fixes issues with the ESM-only structure of v15.0.0. All packages are now in their prior CommonJS/ESM format.
v15.0.0Major Changes
The react-dnd packages are now published as ESM-only withtype: module. See this FAQ by sindresorhus: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99cThe Decorators API has been removed and fully replaced by the Hooks API. The Decorators API was difficult to develop & type correctly, and this improves its maintainability.
The builds no longer use babel & preset-env. The library is transpiled using SWC into the "es2017" target, which assumes async/await is available. This should reduce bundle sizes by removing polyfills and support-code which may be unnecessary in your target.
Bugfixes
canDragis true (#3187)v14.0.3Compare Source
Updated
react-dnd: 14.0.3
react-dnd-html5-backend: 14.0.1
react-dnd-touch-backend: 14.1.0
Patch Updates
v14.0.2Compare Source
Patch
This PR will throw a developer exception if a user specifies a
useDrag::spec.beginmethod.v14.0.1: 14.0.1Compare Source
Patch
Update internal hook
useDragType()to align with updated typings. Check 14.0.0 release for API changesv14.0.0: 14.0.0Compare Source
This release addresses a handful of nagging liveness and ergonomic issues with the hooks API.
The liveness issues affect all hooks, and were discovered on deeper inspection of certain stress tests in the documentation. The internal
useCollector()hook is used to collect props from the DnD system when things change. Prior to this update, we subscribed to updates from the DnD monitor to trigger prop collection. However, state on the react side was only accounted for on the first render. This release improves that liveness by collecting props whenever react state changes.The ergonomics of the
useDraghave been refactored. In short:spec.typeis requiredspec.itemcan be a function or static object.spec.itemreplacesspec.beginSince the release of the hooks API, we packed
typeunderspec.item. However, this led to nonintuitive situations where anitemfield was required to be specified even though items are created in thebeginmethod.Additionally, in the original React-DnD design,
beginDrag()was optional and the type of the draggables had to be defined. If no explicit DragObject was created, an implicit object was created by the system..The change we've made here decouples
typefromitem, and collapsesbeginintoitem.e.g.
useDrag({ item: { type: BOX }})=>useDrag({ type: 'BOX' })We've also added the ability to cancel drag operations in the hooks API by returning null from
begin.v13.1.1Compare Source
react-dnd
Patch
item.typechangesreact-dnd-html5-backend
Patch
HTML5Context,HTML5BackendOptionsinterfacesv13.1.0Compare Source
react-dnd
TLDR:
useDraganduseDropsupport both a memo pattern and a spec object now.In v13, we've tried to address some errors that were pervading with the react-dnd hooks API. Generally, making sure DragSource/DropTargets were up-to-date and that the system wasn't leaking handles was a precarious balancing act. Moving to a memo API pattern (e.g. useDrag(() => spec)) fixed this problem in our tests.
However, as we dug further into handler leakage issues, it became clear that anything using the hooks would reattach and receive a new handler ID whenever the spec changed at all. This was in contrast to the Decorator API's behavior of keeping stable handler IDs as the incoming props changed.
To fix the Hooks API to stop leaking handlers, we found a pretty simple solution: a classical class with a public setter for the
specobject that's updated via auseEffecthook. This neatly avoids the mutating DragSource/DropTargets on every spec change. This had two effects: identifiers have been stabilized, and spec objects were usable again because changing them didn't cause DragSource/DropTarget instances to be regenerated and reattached.In retrospect, this undoes the necessity of the major cut that happened with v13, but the Hooks API is much sturdier now. We hope that you find the improved memory stability in the hooks API to be useful in your projects.
v13.0.1Compare Source
Patch Updates
v13.0.0v12.0.0Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.