SortableList
A sortable drag'n'drop list React component.
DEMO (same but on codepen.io)
Install
npm install react-sortable-dnd-list --save
Use
The exported SortableList
component accepts properties:
value
— A list of items. Yes, the property name may seem weird but there's a reason for it:value
/onChange
convention is useful for using a sortable list as a form field.onChange: function
— Is called with the newvalue
after the user has interacted with the list.component
— List component. Is"div"
by default.itemComponent
— List item component (see below).itemComponentProps
— If defined, these properties will be passed to each list item element.dragHandleDataAttribute: string?
— If defined then only the handle of a list item will be draggable, not the entire list item. For example, ifdragHandleDataAttribute
is"draggable"
then somewhere inside list item DOM Element there must be a DOM Element with adata-draggable
attribute, and only that DOM Element will be draggable.animationDuration: number?
— Is200
by default.animationEasing: string?
— Isease-out
by default.
itemComponent
receives properties:
dragging: boolean
— Istrue
when some item is being dragged.dragged: boolean
— Istrue
when this item is being dragged.style: object
— Thestyle
property that must be set on the item root element.children
— The list item.
Example
const items = let i = 0while i < 10 items i++ { return <div ...rest className=`list__item `> <div className="list__item-content"> <div className="list__item-title"> title </div> <div className="list__item-description"> description </div> </div> </div> } { const items setItems = return <SortableList className="list" itemComponent=ItemComponent value=items onChange=setItems/> } ReactDOM