/// /// import React = require('react'); import ReactDOM = require('react-dom'); import ReactSortableHOC = require('react-sortable-hoc'); interface SortableItemProps { value: string; } interface SortableListProps { items: Array; } type SortableComponentState = SortableListProps; class Item extends React.Component { public constructor(props: SortableItemProps) { super(props); } public render(): JSX.Element { return
  • {this.props.value}
  • ; } } const SortableItem = ReactSortableHOC.SortableElement(Item); const SortableList = ReactSortableHOC.SortableContainer((props: SortableListProps): JSX.Element => { const items: Array = props.items.map((value: string, index: number): JSX.Element => { return ; }); return
      {items}
    ; }); class SortableComponent extends React.Component { private _onSortEnd: ReactSortableHOC.SortEndHandler; private _handleSotEnd(sort: ReactSortableHOC.SortEnd, event: ReactSortableHOC.SortEvent): void { this.setState({items: ReactSortableHOC.arrayMove(this.state.items, sort.oldIndex, sort.newIndex)}); } public constructor() { super(); this.state = { items: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5', 'Item 6'] }; this._onSortEnd = this._handleSotEnd.bind(this); } public render(): JSX.Element { return ; } } let bootstrapNode: HTMLDivElement = document.createElement('div'); ReactDOM.render(, bootstrapNode); document.body.appendChild(bootstrapNode);