UNPKG

react-native-bouncy-checkbox

Version:

Fully customizable animated bouncy checkbox for React Native

49 lines (43 loc) 1.06 kB
import { Animated } from "react-native"; import { useState } from "react"; const useBounceAnimation = () => { const [bounceValue] = useState(new Animated.Value(1)); const bounceAnimation = ( value: number, velocity: number, bounciness: number, ) => { Animated.spring(bounceValue, { toValue: value, velocity, bounciness, useNativeDriver: true, }).start(); }; const syntheticBounceAnimation = ( bounceEffectIn: number, bounceEffectOut: number, bounceVelocityOut: number, bouncinessOut: number, ) => { Animated.sequence([ Animated.timing(bounceValue, { toValue: bounceEffectIn, duration: 50, useNativeDriver: true, }), Animated.spring(bounceValue, { toValue: bounceEffectOut, velocity: bounceVelocityOut, bounciness: bouncinessOut, useNativeDriver: true, }), ]).start(); }; return { bounceValue, bounceAnimation, syntheticBounceAnimation, }; }; export default useBounceAnimation;