Files
Speedtest-Tracker/conf/site/node_modules/react-beautiful-dnd/src/state/dimension-structures.js
2021-04-10 13:56:05 +01:00

36 lines
972 B
JavaScript
Vendored

// @flow
import memoizeOne from 'memoize-one';
import { values } from '../native-with-fallback';
import type {
DroppableDimension,
DroppableDimensionMap,
DraggableDimension,
DraggableDimensionMap,
} from '../types';
export const toDroppableMap = memoizeOne(
(droppables: DroppableDimension[]): DroppableDimensionMap =>
droppables.reduce((previous, current) => {
previous[current.descriptor.id] = current;
return previous;
}, {}),
);
export const toDraggableMap = memoizeOne(
(draggables: DraggableDimension[]): DraggableDimensionMap =>
draggables.reduce((previous, current) => {
previous[current.descriptor.id] = current;
return previous;
}, {}),
);
export const toDroppableList = memoizeOne(
(droppables: DroppableDimensionMap): DroppableDimension[] =>
values(droppables),
);
export const toDraggableList = memoizeOne(
(draggables: DraggableDimensionMap): DraggableDimension[] =>
values(draggables),
);