UNPKG

react-beautiful-dnd

Version:

Beautiful, accessible drag and drop for lists with React.js

41 lines (36 loc) 1.11 kB
// @flow import memoizeOne from 'memoize-one'; import type { DroppableId, DraggableId, 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[] => Object.keys(droppables).map( (id: DroppableId): DroppableDimension => droppables[id], ), ); export const toDraggableList = memoizeOne( (draggables: DraggableDimensionMap): DraggableDimension[] => Object.keys(draggables).map( (id: DraggableId): DraggableDimension => draggables[id], ), );