...
redux-form allows a form in any react component to use the redux store as it's storage location for input values. We use it during OAuth.
react-dnd
This package allows us to declare a component as draggable or as a drop target (or both!). This is different from react-grid-layout because the dragging functionality is not restricted to a grid.
react-dnd-html5-backend
react-dnd can interface with a couple of different drag-n-drop api's. This is needed for the difference between using a laptop and using a touch device (like a phone or tablet). This particular backend is for laptops/desktops, and should not be expected to work reliably with touch devices. If we want to include support for that, this backend can be substituted for a different appropriate backend that supports touch.
Middleware
redux-promise
redux-promise intercepts dispatched actions with a key "payload" and value set to a Promise. All it does is wait for the Promise to resolve itself before allowing the action to proceed onto the reducers.
...