UNPKG

react-native-gesture-flip-card

Version:

[![npm version](https://badge.fury.io/js/react-native-gesture-flip-card.svg)](https://badge.fury.io/js/react-native-gesture-flip-card)

103 lines (80 loc) 3.39 kB
# react-native-gesture-flip-card [![npm version](https://badge.fury.io/js/react-native-gesture-flip-card.svg)](https://badge.fury.io/js/react-native-gesture-flip-card) A pure javascript implementation of a flip card animation using gesture for React Native. ## 2024-11-10 1. Create a new example app `app` and remove the old `example` 2. (Breaking change) `renderBack` and `renderFront` are passing through props instenad of passing by children. 3. (new) Add a argument in `onFlipEnd` function, it will return a boolean value(1: front and 0 for back) when the flip animation ended. 4. (new) Add a new props: `onFaceChanged` function, it will retrun a boolean value(1: front and 0 for back) when the face is changed. ## 2022-03-16 1. Update example to use react-native 0.67.3 2. Use `LogBox` to ignore unnecessary warnings. (To use `LogBox` you need to upgrade react-native to at least 0.63 ) ## Installation ``` bash npm install --save react-native-gesture-flip-card # or yarn add react-native-gesture-flip-card ``` ## Simple Preview ![App preview](/screenshots/example_1.gif) ![App preview](/screenshots/example_2.gif) ## Minimal Usage ```javascript import GestureFlipView from 'react-native-gesture-flip-card'; ``` ```jsx <View style={styles.container}> <GestureFlipView width={300} height={500} renderBack={renderBack} renderFront={renderFront} onFaceChanged={(face) => { // trigger when card face changed console.log('face changed:', face); }} onFlipEnd={(face) => { // trigger when flip animation ended console.log('on flip end:', face); }} /> </View> const renderFront = () => { return ( <View style={styles.frontStyle}> <Text style={{fontSize: 25, color: '#fff'}}>{'Front'}</Text> </View> ); }; const renderBack = () => { return ( <View style={styles.backStyle}> <Text style={{fontSize: 25, color: '#fff'}}>{'Back'}</Text> </View> ); }; ``` ## Detail ### Props | Props | type | description | required | default | | --------------------| ------------- | --------------------------------| ------------- | ------------- | | width | number | width of view | true | | | height | number | height of view | true | | | onFlipEnd | function | callback on end of flip | false | | | perspective | number | perspective of the view | false | -1000 | | gestureEnabled | bool | enable or disable gestures | false | true | | onFaceChanged | function | callback on face changed | false | | ### Method | name | description | args | | --------------------| --------------------------------| --------------------- | | flipLeft | flip the card counterclockwise | | | flipRight | flip the card clockwise | | ```jsx <GestureFlipView ref={(ref) => (viewRef.current = ref)} {...} // skip showing other props /> // usage viewRef.current.flipLeft(); // counterclockwise viewRef.current.flipRight(); // clockwise ```