@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-migration
Version:
An optional Pragmatic drag and drop package that enables rapid migration from react-beautiful-dnd to Pragmatic drag and drop
42 lines (40 loc) • 1.49 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDroppableRegistry = useDroppableRegistry;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
// eslint-disable-next-line import/no-extraneous-dependencies
function createDroppableRegistry() {
var droppableMap = new Map();
var getEntry = function getEntry(_ref) {
var _droppableMap$get;
var droppableId = _ref.droppableId;
return (_droppableMap$get = droppableMap.get(droppableId)) !== null && _droppableMap$get !== void 0 ? _droppableMap$get : null;
};
var updateListener = null;
var setUpdateListener = function setUpdateListener(listener) {
updateListener = listener;
};
var register = function register(entry) {
var _updateListener;
droppableMap.set(entry.droppableId, entry);
(_updateListener = updateListener) === null || _updateListener === void 0 || _updateListener(entry);
return function () {
droppableMap.delete(entry.droppableId);
};
};
return {
getEntry: getEntry,
register: register,
setUpdateListener: setUpdateListener
};
}
function useDroppableRegistry() {
var _useState = (0, _react.useState)(createDroppableRegistry),
_useState2 = (0, _slicedToArray2.default)(_useState, 1),
droppableRegistry = _useState2[0];
return droppableRegistry;
}