@monterosa/react-native-elastic-stack
v1.3.1
Published
Elastic stack for React Native
Downloads
5
Readme
react-native-elastic-stack
React Native component that implements elastic stack effect
Installation
$ npm install @monterosa/react-native-elastic-stack --save
Demo
| | | | |
Basic Usage
import ElasticStack from '@monterosa/react-native-elastic-stack';
// Inside of a component's render() method:
render() {
return (
<ElasticStack
items={Array.from({ length: 5 }).map(
(_, i) => `http://lorempixel.com/640/480/city/?item=${i}`,
)}
itemWidth={itemWidth}
itemHeight={itemHeight}
renderItem={url => <Item image={url} width={itemWidth} height={itemHeight} />}
elastickRange={0.9}
elastickItemsCount={5}
/>
);
}
Examples
Please clone the repo and run npm run storybook
or yarn storybook
to show examples of usages.
Usage (API)
onPanResponderGrant: PropTypes.func, onPanResponderRelease: PropTypes.func,
| Property | Type | Defaut | Description |
| -------- | ---- | -------- | ----------- |
| style
| object
| {}
| Component's styles. |
| items
| array
| []
| Array of data for the items to be rendered. |
| onSwiped
| func
| (itemIndex) => {}
| Function to be called when a item is swiped. |
| infinite
| bool
| false
| Keep swiping indefinitely. |
| distDrag
| number
| 70
| If the user stops dragging the image in a area that does not exceed for either x or y then the image goes back to the stack. |
| onXChange
| func
| () => {)
| Function to be called when x
of current item changed. |
| onYChange
| func
| () => {}
| Function to be called when y
of current item changed |
| itemWidth
| number
| Dimensions.get('window').width * 0.8
| This is the width of the item. |
| itemHeight
| number
| Dimensions.get('window').height * 0.8
| This is the width of the item. |
| directions
| array
| [true, true, true, true]
| Supported directions([top, right, bottom, left]) in which items can swipe out. |
| renderItem
| func
| (itemData, itemWidth, itemHeight) => {}
| Function to render the item based on the data. |
| onSwipedTop
| func
| (itemIndex) => {}
| Function to be called when a item is swiped top. |
| onSwipedLeft
| func
| (itemIndex) => {}
| Function to be called when a item is swiped left. |
| onStackEnded
| func
| () => {}
| Function to be called when stack is ended. |
| rotateDegree
| number
| 10
| The value by which items should rotate. |
| reduceScaleBy
| number
| 0.05
| The value by which the next items should decrease. |
| onSwipedRight
| func
| (itemIndex) => {}
| Function to be called when a item is swiped right. |
| reduceDegreeBy
| number
| 0.65
| The value by which the next items should reduce rotate. |
| onSwipedBottom
| func
| (itemIndex) => {}
| Function to be called when a item is swiped bottom. |
| reduceOpacityBy
| number
| 0.2
| The value by which the next item should be more transparent. |
| activeItemIndex
| number
| 0
| Default item index. |
| stackEffectHeight
| number
| 5
| The height of the stack effect. |
| reduceTransformBy
| number
| 0.7
| The value by which the next items should reduce transforms. |
| elastickItemsCount
| number
| 3
| Count of items rendered at the same time. |
| onPanResponderGrant
| func
| () => {}
| |
| onPanResponderRelease
| func
| () => {}
| |
Latest changelog
All changes here
1.3.1 - 2018-02-13
Fixed
- replaced
**
withMath.pow
1.3.0 - 2018-02-11
Added
- stack effect, now you can see the next curds
- new props:
rotateDegree
,reduceDegreeBy
,stackEffectHeight
Changed
- the props
elastickRange
changed toreduceTransformBy
Contributing
I welcome contributions! Please open an issue if you have any feature ideas or find any bugs. I also accept pull requests with open arms. I will go over the issues when I have time. :)