UNPKG

945 BJavaScriptView Raw
1import React, {Component} from 'react';
2import {render} from 'react-dom';
3import {sortableContainer, sortableElement} from 'react-sortable-hoc';
4import {arrayMove} from 'array-move';
5
6const SortableItem = sortableElement(({value}) => <li>{value}</li>);
7
8const SortableContainer = sortableContainer(({children}) => {
9 return <ul>{children}</ul>;
10});
11
12class App extends Component {
13 state = {
14 items: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5', 'Item 6'],
15 };
16
17 onSortEnd = ({oldIndex, newIndex}) => {
18 this.setState(({items}) => ({
19 items: arrayMove(items, oldIndex, newIndex),
20 }));
21 };
22
23 render() {
24 const {items} = this.state;
25
26 return (
27 <SortableContainer onSortEnd={this.onSortEnd}>
28 {items.map((value, index) => (
29 <SortableItem key={`item-${index}`} index={index} value={value} />
30 ))}
31 </SortableContainer>
32 );
33 }
34}
35
36render(<App />, document.getElementById('root'));
37
\No newline at end of file