react-native-swipe-verify

0.1.6 • Public • Published

RNSwipeVerify

A small componenent to Swipe Verify

Installation

npm install --save react-native-swipe-verify yarn add react-native-swipe-verify

Preview

lo lo

Important

If the RNSwipeVerify is inside another component with PanResponder the RNSwipeVerify will be cancelled.

Usage

import React, { Component } from 'react';
 
import {
  View,
  TouchableOpacity, Text,
  Dimensions
} from 'react-native';
 
 
const { width } = Dimensions.get('window')
 
import RNSwipeVerify from 'react-native-swipe-verify'
 
import LottieView from 'lottie-react-native';
 
export default class App extends Component {
 
  constructor(props) {
    super(props)
 
    this.state = { isUnlocked: false, isUploaded: false }
 
  }
 
  render() {
 
 
    const { isUnlocked, isUploaded } = this.state
 
    const lottieSizeIcon = isUploaded ? 60 : 40;
 
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'flex-end', backgroundColor: '#fff', paddingBottom: 40 }}>
 
 
        {/** Lottie example */}
        <View style={{ marginTop: 20 }}>
          <RNSwipeVerify ref={ref => this.swipeVerify2 = ref}
            width={width - 50}
            buttonSize={60}
            buttonColor="#2962FF"
            borderColor="#2962FF"
            backgroundColor="#fff"
            textColor="#37474F"
            borderRadius={30}
            okButton={{ visible: true, duration: 400 }}
            onVerified={() => {
              this.setState({ isUploaded: true })
            }}
            icon={
              <View style={{ width: lottieSizeIcon, height: lottieSizeIcon }}>
                <LottieView
                  source={isUploaded ? require('./lottie_files/ready_to_upload.json') : require('./lottie_files/cloud_upload.json')}
                  autoPlay
 
                  resizeMode='contain'
                  loop={!isUploaded}
                />
              </View>
            }
          >
 
            <Text>{isUploaded ? 'UPLOADED' : 'slide to upload'}</Text>
 
          </RNSwipeVerify>
        </View>
        {/** end Lottie example */}
 
 
 
 
 
 
        <View style={{ marginTop: 20 }}>
          <RNSwipeVerify ref={ref => this.swipeVerify3 = ref}
            width={width - 50}
            buttonSize={60}
            borderColor="#fff"
            buttonColor="#37474F"
            backgroundColor="#ececec"
            textColor="#37474F"
            okButton={{ visible: false, duration: 400 }}
            onVerified={() => {
              this.setState({ isUnlocked: true })
            }}
            icon={<Image source={isUnlocked ? require('./img/unlocked.png') : require('./img/locked.png')} style={{ width: 40, height: 40 }} />}
          >
 
            <Text>{isUnlocked ? 'UNLOCKED' : 'slide to unlock'}</Text>
 
          </RNSwipeVerify>
        </View>
 
 
        <TouchableOpacity onPress={() => {
 
          this.swipeVerify2.reset()
          this.swipeVerify3.reset()
          this.setState({ isUnlocked: false, isUploaded: false })
        }} style={{ marginTop: 30 }}>
          <Text style={{ padding: 10, color: '#f00', fontSize: 25 }}>RESET</Text>
        </TouchableOpacity>
 
 
 
      </View>
    );
  }
}

Props

name type default description
width (required) number required the width of swipe-verify
buttonSize (required) number required the button (Icon) size of swipe-verify
backgroundColor (optional) string #F50057 background color
buttonColor (optional) string #D50000 button background color
icon (optional) component see the example to more information
borderColor (optional) string #D50000 border color
borderRadius (optional) number 0 border radius to the button and container
okButton (optional) object { visible: true, duration: 300 } if visible is false the icon button will be hidden, duration (number) is the animation duration in miliseconds

Callbacks

name arguments notes
onVerified (required) bool listener to check if the swipe is verified (user has completed swipe)

Methods

name arguments notes
reset() none reset the swipe-verify to default values

Package Sidebar

Install

npm i react-native-swipe-verify

Weekly Downloads

120

Version

0.1.6

License

MIT

Unpacked Size

13.4 kB

Total Files

9

Last publish

Collaborators

  • darwinmorocho