@@ -40,21 +40,20 @@ const extend = (target, ...sources) => {
40
40
return target ;
41
41
} ;
42
42
43
- const SortableMixin = ( sortableOptions = defaultOptions ) => ( Component ) => class extends React . Component {
43
+ const SortableMixin = ( options = defaultOptions ) => ( Component ) => class extends React . Component {
44
44
sortableInstance = null ;
45
- sortableOptions = sortableOptions ;
45
+ sortableOptions = extend ( { } , defaultOptions , options ) ;
46
46
47
47
componentDidMount ( ) {
48
- const wrapperComponent = this ;
49
- const sortableComponent = wrapperComponent . refs [ refName ] ;
50
- const options = extend ( { } , defaultOptions , wrapperComponent . sortableOptions ) ;
48
+ const sortableComponent = this . refs [ refName ] ;
51
49
const emitEvent = ( type , evt ) => {
52
- const methodName = options [ type ] ;
50
+ const methodName = this . sortableOptions [ type ] ;
53
51
const method = sortableComponent [ methodName ] ;
54
- method && method . call ( sortableComponent , evt , wrapperComponent . sortableInstance ) ;
52
+ method && method . call ( sortableComponent , evt , this . sortableInstance ) ;
55
53
} ;
56
54
57
- let copyOptions = extend ( { } , options ) ;
55
+ let copyOptions = extend ( { } , this . sortableOptions ) ;
56
+
58
57
[ // Bind callbacks
59
58
'onStart' ,
60
59
'onEnd' ,
@@ -68,15 +67,15 @@ const SortableMixin = (sortableOptions = defaultOptions) => (Component) => class
68
67
copyOptions [ name ] = ( evt ) => {
69
68
if ( name === 'onStart' ) {
70
69
_nextSibling = evt . item . nextElementSibling ;
71
- _activeWrapperComponent = wrapperComponent ;
70
+ _activeWrapperComponent = this ;
72
71
} else if ( name === 'onAdd' || name === 'onUpdate' ) {
73
72
evt . from . insertBefore ( evt . item , _nextSibling ) ;
74
73
75
74
const oldIndex = evt . oldIndex ;
76
75
const newIndex = evt . newIndex ;
77
76
let newState = { } ;
78
77
let remoteState = { } ;
79
- let items = getModelItems ( wrapperComponent ) ;
78
+ let items = getModelItems ( this ) ;
80
79
81
80
if ( name === 'onAdd' ) {
82
81
let remoteItems = getModelItems ( _activeWrapperComponent ) ;
@@ -88,15 +87,15 @@ const SortableMixin = (sortableOptions = defaultOptions) => (Component) => class
88
87
items . splice ( newIndex , 0 , items . splice ( oldIndex , 1 ) [ 0 ] ) ;
89
88
}
90
89
91
- newState [ wrapperComponent . sortableOptions . model ] = items ;
90
+ newState [ this . sortableOptions . model ] = items ;
92
91
93
92
if ( copyOptions . stateHandler ) {
94
93
sortableComponent [ copyOptions . stateHandler ] ( newState ) ;
95
94
} else {
96
95
sortableComponent . setState ( newState ) ;
97
96
}
98
97
99
- if ( _activeWrapperComponent !== wrapperComponent ) {
98
+ if ( _activeWrapperComponent !== this ) {
100
99
_activeWrapperComponent . refs [ refName ] . setState ( remoteState ) ;
101
100
}
102
101
}
@@ -107,13 +106,12 @@ const SortableMixin = (sortableOptions = defaultOptions) => (Component) => class
107
106
} ;
108
107
} ) ;
109
108
110
- const domNode = ReactDOM . findDOMNode ( sortableComponent . refs [ options . ref ] || sortableComponent ) ;
109
+ const domNode = ReactDOM . findDOMNode ( sortableComponent . refs [ this . sortableOptions . ref ] || sortableComponent ) ;
111
110
this . sortableInstance = Sortable . create ( domNode , copyOptions ) ;
112
111
}
113
112
componentWillReceiveProps ( nextProps ) {
114
- const wrapperComponent = this ;
115
- const sortableComponent = wrapperComponent . refs [ refName ] ;
116
- const model = wrapperComponent . sortableOptions . model ;
113
+ const sortableComponent = this . refs [ refName ] ;
114
+ const model = this . sortableOptions . model ;
117
115
const items = nextProps [ model ] ;
118
116
119
117
if ( items ) {
0 commit comments