Skip to content

Commit 964c3ec

Browse files
committed
Merge pull request #9 from costimize/3
Pass sortable instance to component as a prop
2 parents e09c411 + d2012dd commit 964c3ec

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/index.jsx

+12-7
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,19 @@ const extend = (target, ...sources) => {
4141
};
4242

4343
const SortableMixin = (options = defaultOptions) => (Component) => class extends React.Component {
44-
sortableInstance = null;
44+
45+
state = {
46+
sortableInstance: null
47+
};
48+
4549
sortableOptions = extend({}, defaultOptions, options);
4650

4751
componentDidMount() {
4852
const sortableComponent = this.refs[refName];
4953
const emitEvent = (type, evt) => {
5054
const methodName = this.sortableOptions[type];
5155
const method = sortableComponent[methodName];
52-
method && method.call(sortableComponent, evt, this.sortableInstance);
56+
method && method.call(sortableComponent, evt, this.state.sortableInstance);
5357
};
5458

5559
let copyOptions = extend({}, this.sortableOptions);
@@ -133,18 +137,19 @@ const SortableMixin = (options = defaultOptions) => (Component) => class extends
133137
initSortable(sortableComponent) {
134138
this.destroySortable();
135139
const domNode = ReactDOM.findDOMNode(sortableComponent.refs[this.sortableOptions.ref] || sortableComponent);
136-
this.sortableInstance = Sortable.create(domNode, this.populatedOptions);
140+
const sortableInstance = Sortable.create(domNode, this.populatedOptions);
141+
this.setState({sortableInstance});
137142
}
138143
destroySortable() {
139-
if (this.sortableInstance) {
140-
this.sortableInstance.destroy();
141-
this.sortableInstance = null;
144+
if (this.state.sortableInstance) {
145+
this.state.sortableInstance.destroy();
146+
this.setState({sortableInstance: null});
142147
}
143148
}
144149

145150
render() {
146151
return (
147-
<Component ref={refName} {...this.props} />
152+
<Component ref={refName} sortableInstance={this.state.sortableInstance} {...this.props} />
148153
);
149154
}
150155
};

0 commit comments

Comments
 (0)