invariantx
Last release 4 years ago
no release in 18 months
Ships unpredictably
gaps range from 3 weeks to 2.2 years
Most releases are documented
notes for 5 of 8 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
8 releases · first in 2019
Release timeline
8 releases since 2019Releases
- 4.0.219 Apr 2022
Nothing published for this version
- 4.0.119 Apr 2022
- 4.0.05 Apr 2022
Release notes
Open source →Breaking Changes:
- Using new React Context API. React Peer dependency has been pinned at >= 16.3., which is when that API was released.
- Dictionary objects have been replaced with ES6 Maps, shims may be required for older and non-compliant browsers.
Other Changes:
- Remove dependency on @types/redux, since redux provides its own typings
- React 17 prep - remove usage of lifecycle methods that are being deprecated
- Replace all
require()s withimports, which was causing grief for some users. This resulted in some culling of dependencies. - Remove isClassComponent check from
decorateHandler. This check was not working correctly in certain situations, and resulted in silent failures. By just setting the ref directly, React will emit warnings about not being able to ref SFCs, which is more useful.
Additional notes
Open source →- Add issue templates (#1043) (e3b5890), closes #1043
- Include BrowserStack Logo (#1048) (03a909d), closes #1048
- React 17 Preparation (#1033) (4d8e364), closes #1033
- Remove 'require' statements from main code (#1050) (c4bab9a), closes #1050
- Remove @redux/types dependency (#1038) (765887e), closes #1038
- Remove bithound references (#1047) (e97e747), closes #1047
- Remove Node Types (#1039) (f3dd6cc), closes #1039
- Remove the isClassComponent check (#1052) (8c1594b), closes #1052
- Replace objects with frequent deletes in the HTML5Backend with ES6 maps (#1053) (c98fa9b), closes #1053
- v4.0.0 (4112cb0)
- 3.0.131 Mar 2022
Release notes
Open source →3.0.0 was intended as a prerelease version (apologies for not including a -beta tag). This is the "final" 3.0 release.
The typings here have been updated to align more closely with the DefinitelyTyped react-dnd typings. They are much more accurate than in the prerelease.
Edit: please don't use this version, we discovered a critical issue with the documentation site.
- 3.0.07 Feb 2022
Release notes
Open source →In this release we've migrated the codebase to Typescript. The published libraries now have their own embedded typings definitions. It will remain an ongoing effort to improve the typings in our code.
Breaking Changes:
- Removed the dependency on
windowfrom react-dnd. This should allow us to experiment with using react-dnd react-native. To support this, the DragDropContextProvider has been totally changed up. It now accepts a context object parameter that is backend-implementation dependent. Currently the HTML5Backend will need context to be{ window } - The DragDropContext component will no longer try to unpack ES6 modules. The difference between CommonJS and ES6 module formats is well known by now.
- The dnd-core`s redux actions are now FSA-compliant.
- dnd-core Redux has been upgraded to 4.x
Additional notes
Open source →- (#1010) - Upgrade to redux 4 (#1013) (164a804), closes #1010 #1013
- Improve documentation for testing (#976) (42e1221), closes #976
- Move the publish_docs script to the top-level (232d0d4)
- support react 16.3 statics (#1015) (f6cf73a), closes #1015
- Typescript Migration (#1017) (56de346), closes #1017
- Update Documentation Source Links (aee9863)
- v3.0.0 (4d37ad5)
- Removed the dependency on
- 2.0.027 Nov 2019
Release notes
Open source →Breaking Changes
React 0.14 is now required
This release removes the warnings for React 0.14, but it now requires 0.14 too.
The UMD build is gone from master
The UMD build is no longer available in
distfolder in master branch. Instead, it is available indistfolder on thelatestbranch and any future tagged release branch.HTML5 backend and test backend are now in separate packages
We are using this opportunity to separate the backends out of React DnD repo and package.
You will need to install
react-dnd-html5-backendin addition toreact-dnd. You may also installreact-dnd-test-backend.Similarly, in UMD builds,
ReactDnDno longer includesReactDnD.HTML5. You need to useReactDnDHTML5Backendprovided separately in thedistfolder of thelatestor any tagged release branch in thereact-dnd-html5-backendrepo.Official Bower support is gone
I no longer intend to support Bower. Please stop using Bower. NPM 3 works very well for front-end development, and you should use it instead.
Because the UMD builds are available on
latestand tagged release branches of both React DnD and its HTML5 backend in thedistfolder, you can point your configs to them instead.connect*()methods no longer accept composite component elementsThis worked and still works:
return connectDragSource(<div><Something /></div>); return connectDragPreview(<div><Something /></div>); return connectDropTarget(<div><Something /></div>);However, this worked in 1.x, but will throw in 2.x:
return connectDragSource(<Something />); return connectDragPreview(<Something />); return connectDropTarget(<Something />);This change was made to avoid dependency on
react-domfor React DnD, which is a good thing for React libraries. It also enforces stronger encapsulation because theconnect*()is now always located in the view that actually creates the related React DOM element. Relevant commit: https://github.com/gaearon/react-dnd/commit/96d4c309089274839503ff95e4f8bfc979c364b7.The solution is to make sure that, when you pass a React element to
connectDragSource,connectDragPreview, orconnectDropTarget, it is always a React DOM element, and not an element for a custom component.You have three ways of ensuring this, in the order of preference:
Change your
connect*()calls to wrap custom components in<div>sBefore
return connectDragSource( <Something /> );After
return connectDragSource( <div> <Something /> </div> );Make those components drag sources or drop targets themselves
Before
return connectDragSource( <Something /> );After
return <Something />; // assuming Something is a DragSource nowCall
findDOMNode()yourself and putconnect*()methods directly on the refThis is especially useful if you used
connect*()methods inside higher order components:Before
return connectDragSource( <Something /> );After
return <Something ref={instance => connectDragSource(findDOMNode(instance))} />; - 1.0.227 Nov 2019
Nothing published for this version
- 1.0.126 Nov 2019
Nothing published for this version