1.3.6 • Published 9 years ago
shimo-react-anything-sortable v1.3.6
react-anything-sortable

Features
- Sort any React element you like, images, composite components, etc.
- No external dependencies but
Reactitself - Touch event support
- Thoroughly tested
Quick Demo
Sort custom style children

Sort images

Children with custom event handler

Installation
If you're using React v0.13, please use react-anything-sortable@0.x instead, it's the latest compatible version.
$ npm install --save react-anything-sortable
// if you're using React v0.13, try
$ npm install --save react-anything-sortable@0.x
// UMD build is provided as well, but please do consider use modern module bundlers like webpack or browserify.How to use
You can check the straight-forward demo by examining demo folder, or here's a brief example.
In app.js
var ReactDOM = require('react-dom');
var Sortable = require('react-anything-sortable');
var SortableItem = require('./SortableItem');
ReactDOM.render(
<Sortable onSort={handleSort}>
<SortableItem sortData="1" />
<SortableItem sortData="2" />
</Sortable>
, document.body);and in SortableItem.js
A modern usage would be
import React from 'react';
import { sortable } from 'react-anything-sortable';
@sortable
class SortableItem extends React.Component {
render() {
return (
<div {...this.props}> // <-- make sure destructure props to your own item,
your item // it contains required `className`s and
</div> // event handlers
);
}
};Or if you favor the old fashion way
var React = require('react');
var SortableItemMixin = require('react-anything-sortable').SortableItemMixin;
var SortableItem = React.createClass({
mixins: [SortableItemMixin],
render: function(){
return this.renderWithSortable( // <-- this.renderWithSortable call is essential
<div>your item</div>
);
}
});Props
onSort
Type: Function Default: () => {}
Being called with sorted data when a sort operation is finished.
Arguments
- sortedArray (Array) Sorted array consists of
sortDataplucked from each sortable item
containment
Type: Bool Default: false
Constrain dragging area within sortable container.
sortData
Add this props to SortableItem rather than Sortable !
Type: Any Default: undefined
Will be returned by onSort callback in the form of array.
Notice
- Specify your style for
SortableandSortable Items, checkdemo/style.css, it is NOT optional! - Don't forget the
this.renderWithSortablecall inSortableItem - Since we can't track any children modification in
Sortable, you have to usekeyto force updateSortablewhen adding/removing children.
Scripts
$ npm run test
$ npm run watch
$ npm run build
$ npm run demo
$ npm run demo:watchContributors
1.3.6
9 years ago