@@ -5,50 +5,48 @@ import {SortableContainer, SortableElement, arrayMove} from './src/index';
5
5
import range from 'lodash/range' ;
6
6
import random from 'lodash/random' ;
7
7
8
- const Item = SortableElement ( ( props ) => {
9
- return (
10
- < div style = { {
11
- position : 'relative' ,
12
- width : '100%' ,
13
- display : 'block' ,
14
- padding : 20 ,
15
- borderBottom : '1px solid #DEDEDE' ,
16
- boxSizing : 'border-box' ,
17
- WebkitUserSelect : 'none' ,
18
- height : props . height
19
- } } >
20
- Item { props . value }
21
- </ div >
22
- )
23
- } ) ;
8
+ const SortableItem = SortableElement ( ( { height, value} ) => (
9
+ < div style = { {
10
+ position : 'relative' ,
11
+ width : '100%' ,
12
+ display : 'block' ,
13
+ padding : 20 ,
14
+ borderBottom : '1px solid #DEDEDE' ,
15
+ boxSizing : 'border-box' ,
16
+ WebkitUserSelect : 'none' ,
17
+ height : height
18
+ } } >
19
+ Item { value }
20
+ </ div >
21
+ ) ) ;
24
22
25
- class List extends Component {
23
+ const SortableList = SortableContainer ( ( { items} ) => (
24
+ < div >
25
+ { items . map ( ( { height, value} , index ) => < SortableItem key = { `item-${ index } ` } index = { index } value = { value } height = { height } /> ) }
26
+ </ div >
27
+ ) ) ;
28
+
29
+ class Example extends Component {
26
30
state = {
27
- items : range ( 5000 ) . map ( ( value ) => {
31
+ items : range ( 100 ) . map ( ( value ) => {
28
32
return {
29
33
value,
30
34
height : random ( 49 , 120 )
31
35
} ;
32
36
} )
33
37
} ;
34
- onSortEnd = ( previousIndex , newIndex ) => {
38
+ onSortEnd = ( { oldIndex , newIndex} ) => {
35
39
let { items} = this . state ;
36
- arrayMove ( items , previousIndex , newIndex ) ;
40
+ arrayMove ( items , oldIndex , newIndex ) ;
37
41
this . setState ( { items} ) ;
38
42
} ;
39
43
render ( ) {
40
44
const { items} = this . state ;
41
45
42
- return (
43
- < div >
44
- { items . map ( ( item , index ) => < Item key = { `item-${ index } ` } index = { index } value = { item } /> ) }
45
- </ div >
46
- ) ;
46
+ return < SortableList items = { items } onSortEnd = { this . onSortEnd } /> ;
47
47
}
48
48
}
49
49
50
- const SortableList = SortableContainer ( List ) ;
51
-
52
- render ( < SortableList /> ,
50
+ render ( < Example /> ,
53
51
document . getElementById ( 'root' )
54
52
)
0 commit comments