1.0.0 • Published 5 years ago

react-native-rewards v1.0.0

Weekly downloads
120
License
MIT
Repository
github
Last release
5 years ago

react-native-rewards

Library is strongly inspired by react-rewards created by The Develobear!

$ npm install react-native-rewards --save

$ yarn add react-native-root-view-background

Library is 100% javascript so, there is no need to do native linking

Usage

using props:

import RewardsComponent from 'react-native-rewards';
import React, { Component, createRef } from 'react';

class App extends Component {
  state={
    animationState: 'rest',
  }

  render() {
    const { animationState } = this.state;
    return (
      <RewardsComponent
        animationType="confetti"
        state={animationState}
        onRest={() => this.setState({ animationState: 'rest' })}
      >
        <TouchableOpacity
          onPress={() => this.setState({ animationState: 'reward' })}
          style={styles.buttonProps}
        >
          <Text style={styles.buttonText}>+</Text>
        </TouchableOpacity>
      </RewardsComponent>
    )
  }
}

using ref:

import RewardsComponent from 'react-native-rewards';
import React, { Component, createRef } from 'react';

class App extends Component {
  constructor(props) {
    super(props);
    this.rewardsComponent = createRef();
  }

  render() {
    return (
       <RewardsComponent
        ref={this.rewardsComponent}
        animationType="emoji"
      >
        <TouchableOpacity
          onPress={() => this.rewardsComponent.current.rewardMe()}
          style={styles.button}
        >
          <Image source={require('./assets/cup.png')}
           style={styles.icon}/>
        </TouchableOpacity>
      </RewardsComponent>
    )
  }
}

Props

nametypedescriptionrequireddefault
childrenReact Elementcontent to animate e.g. ButtonYES
initialSpeedNumber/Floatinitial speed of particesNO1
spreadNumber/FloatMultiplier of distance beetween particesNO1
deaccelerationNumber/FloatMultiplier how fast partices deaccelerate in firt phaseNO1
rotationXSpeedNumber/FloatRotation speed multiplier in X axisNO5
rotationZSpeedNumber/FloatRotation speed multiplier in Z axisNO5
particiesCountNumber/IntegerPartices count in reward animationNO20
colorsArrayColors used to generate confettiNOSome colors :)
emojiArrayEmojis used to generate confettiNO['👍','😊','🎉']
animationTypeStringType of animation confetti/emojiNOconfetti
stateStringState of animation, changing of this value triggers animationNOrest
onRestFunctionCallback when animation goes to rest stateNO

Methods

You can call this method by using refs of component

  • rewardMe - Triggers reward animation
  • punishMe - Triggers punish animation

Notes for local development

You need to have facebook watchman installed

  1. cd example
  2. yarn
  3. yarn start
  4. yarn run sync in another terminal window (doesn't matter where)

If you have any issues, you can clear your watches using watchman watch-del-all and try again.

Author

Feel free to ask me qustion on Twitter @JanRomaniak!