1+ import extend from 'lodash/extend' ;
12import random from 'lodash/random' ;
23import React from 'react' ;
34import ReactDOM from 'react-dom' ;
4- import Sortable from 'react-sortablejs ' ;
5+ import Sortable from '../../src ' ;
56import SimpleList from './simple-list' ;
67import SharedGroup from './shared-group' ;
7-
8- const items = [
9- 'Apple' ,
10- 'Banana' ,
11- 'Cherry' ,
12- 'Guava' ,
13- 'Grape' ,
14- 'Kiwi' ,
15- 'Lemon' ,
16- 'Melon' ,
17- 'Orange' ,
18- 'Pear' ,
19- 'Peach' ,
20- 'Strawberry'
21- ] ;
8+ import store from './store' ;
229
2310class App extends React . Component {
2411 state = {
25- left : [ 'Apple' , 'Banaba' , 'Cherry' , 'Grape' ] ,
26- right : [ 'Lemon' , 'Orange' , 'Pear' , 'Peach' ]
12+ simpleList : store . get ( 'simpleList' ) ,
13+ sharedGroup : store . get ( 'sharedGroup' )
2714 } ;
2815
29- handleClick ( ) {
16+ componentDidMount ( ) {
17+ store . on ( 'change' , ( ) => {
18+ this . setState ( {
19+ simpleList : store . get ( 'simpleList' ) ,
20+ sharedGroup : store . get ( 'sharedGroup' )
21+ } ) ;
22+ } ) ;
23+ }
24+ addMoreItems ( ) {
25+ const items = [
26+ 'Apple' ,
27+ 'Banana' ,
28+ 'Cherry' ,
29+ 'Guava' ,
30+ 'Grape' ,
31+ 'Kiwi' ,
32+ 'Lemon' ,
33+ 'Melon' ,
34+ 'Orange' ,
35+ 'Pear' ,
36+ 'Peach' ,
37+ 'Strawberry'
38+ ] ;
3039 const i = random ( 0 , items . length - 1 ) ;
31- const state = this . state . left . concat ( items [ i ] ) ;
32- this . setState ( { left : state } ) ;
40+ const sharedGroup = extend ( { } , this . state . sharedGroup ) ;
41+ sharedGroup . left = sharedGroup . left . concat ( items [ i ] ) ;
42+ this . setState ( { sharedGroup : sharedGroup } ) ;
3343 }
3444 render ( ) {
3545 return (
@@ -38,7 +48,12 @@ class App extends React.Component {
3848 < div className = "title" > Simple List</ div >
3949 < div className = "row" >
4050 < div className = "col-sm-12" >
41- < SimpleList />
51+ < SimpleList
52+ items = { this . state . simpleList }
53+ onChange = { ( items ) => {
54+ store . set ( 'simpleList' , items ) ;
55+ } }
56+ />
4257 </ div >
4358 </ div >
4459 </ div >
@@ -48,20 +63,26 @@ class App extends React.Component {
4863 < button
4964 type = "button"
5065 className = "btn btn-default"
51- onClick = { ::this . handleClick }
66+ onClick = { ::this . addMoreItems }
5267 >
5368 Add more items
5469 </ button >
5570 </ div >
5671 < div className = "row" >
5772 < div className = "col-sm-6" >
5873 < SharedGroup
59- items = { this . state . left }
74+ items = { this . state . sharedGroup . left }
75+ onChange = { ( items ) => {
76+ store . replace ( 'sharedGroup.left' , items ) ;
77+ } }
6078 />
6179 </ div >
6280 < div className = "col-sm-6" >
6381 < SharedGroup
64- items = { this . state . right }
82+ items = { this . state . sharedGroup . right }
83+ onChange = { ( items ) => {
84+ store . replace ( 'sharedGroup.right' , items ) ;
85+ } }
6586 />
6687 </ div >
6788 </ div >
0 commit comments