UNPKG

react-native-redash

Version:

Utility library for React Native Reanimated

2 lines 2.35 kB
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import*as React from"react";import Animated,{Easing}from"react-native-reanimated";import{useMemoOne}from"use-memo-one";import{min}from"./Math";import{runTiming}from"./AnimationRunners";var Clock=Animated.Clock,Value=Animated.Value,set=Animated.set,add=Animated.add,multiply=Animated.multiply,cond=Animated.cond,eq=Animated.eq,abs=Animated.abs,sub=Animated.sub,interpolate=Animated.interpolate,divide=Animated.divide,useCode=Animated.useCode;export var snapPoint=function snapPoint(value,velocity,points){var point=add(value,multiply(0.2,velocity));var diffPoint=function diffPoint(p){return abs(sub(point,p));};var deltas=points.map(function(p){return diffPoint(p);});var minDelta=min.apply(void 0,_toConsumableArray(deltas));return points.reduce(function(acc,p){return cond(eq(diffPoint(p),minDelta),p,acc);},new Value());};export var bInterpolate=function bInterpolate(value,origin,destination){return interpolate(value,{inputRange:[0,1],outputRange:[origin,destination]});};export var translateZ=function translateZ(perspective,z){return{scale:divide(perspective,sub(perspective,z))};};export var transformOrigin=function transformOrigin(){var x=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var y=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;for(var _len=arguments.length,transformations=new Array(_len>2?_len-2:0),_key=2;_key<_len;_key++){transformations[_key-2]=arguments[_key];}return[{translateX:x},{translateY:y}].concat(transformations,[{translateX:multiply(x,-1)},{translateY:multiply(y,-1)}]);};export var useTransition=function useTransition(state,src,dest){var duration=arguments.length>3&&arguments[3]!==undefined?arguments[3]:400;var easing=arguments.length>4&&arguments[4]!==undefined?arguments[4]:Easing.linear;if(!React.useMemo){throw new Error("useTransition() is only available in React Native 0.59 or higher.");}if(!useCode){throw new Error("useCode() is only available in Reanimated 1.0.0 or higher");}var _useMemoOne=useMemoOne(function(){return{transitionVal:new Value(0),clock:new Clock()};},[]),transitionVal=_useMemoOne.transitionVal,clock=_useMemoOne.clock;useCode(set(transitionVal,runTiming(clock,src,{toValue:dest,duration:duration,easing:easing})),[state]);return transitionVal;}; //# sourceMappingURL=Animations.js.map