## Sortable list view for react-native ### Content - [Demo](#demo) - [Installation](#installation) - [Examples](#examples) - [API](#api) - [Questions?](#questions) ### Demo ### Installation ```bash npm i react-native-sortable-list --save ``` ### Examples - [Basic](https://github.com/gitim/react-native-sortable-list/tree/master/examples/Basic) - [Horizontal](https://github.com/gitim/react-native-sortable-list/tree/master/examples/Horizontal) ### API #### Props - **data** (Object) data source - **order?** (Array) an array of keys from data, the order of keys from the array will be used to initial rows order - **style?** (Object, Array) - **contentContainerStyle?** (Object, Array) these styles will be applied to the inner scroll view content container - **horizontal?** (boolean) when true, the SortableList's children are arranged horizontally in a row instead of vertically in a column. The default value is false. - **sortingEnabled?** (boolean) when false, rows are not sortable. The default value is true. - **scrollEnabled?** (boolean) when false, the content does not scrollable. The default value is true. - **autoscrollAreaSize?** (number) determines the height for vertical list and the width for horizontal list of the area at the begining and the end of the list that will trigger autoscrolling. Defaults to 60.
- **rowActivationTime?** (number) determines time delay in ms before pressed row becomes active. Defaults to 200 ms.
- **refreshControl?** (element)
A RefreshControl that works the same way as a ScrollView's refreshControl. - **renderRow** (function)
`({key, index, data, disabled, active}) => renderable`
Takes a row key, row index, data entry from the data source and its statuses disabled, active and should return a renderable component to be rendered as the row.
- **renderFooter?** (function)
`() => renderable`
Renders returned component at the bottom of the list. - **onChangeOrder?** (function)
`(nextOrder) => void`
Called when rows were reordered, takes an array of rows keys of the next rows order. - **onActivateRow?** (function)
`(key) => void`
Called when a row was activated (user long tapped). - **onReleaseRow?** (function)
`(key) => void`
Called when the active row was released. - **onPressRow?** (function)
`(key) => void`
Called when a row was pressed. #### Methods - **scrollBy(dy?, animated?)** scrolls by a given y offset, either immediately or with a smooth animation - **scrollTo(y?, animated?)** scrolls to a given y offset, either immediately or with a smooth animation - **scrollToRowKey(key, animated?)** scrolls to a given row key, either immediately or with a smooth animation ### Questions? Feel free to contact me via - [Twitter](https://twitter.com/_gitim) If you find a bug, please [submit an issue](https://github.com/gitim/react-native-sortable-list/issues/new)