UNPKG

@livelike/react-native

Version:

LiveLike React Native package

50 lines 1.65 kB
import { useEffect, useMemo, useState } from 'react'; import { Animated } from 'react-native'; import { useWidgetRewards } from './useWidgetRewards'; export const useWidgetRewardsEffect = _ref => { let { widgetId } = _ref; const widgetRewards = useWidgetRewards({ widgetId }); const [posYs, setPosys] = useState([]); useEffect(() => { if (widgetRewards && (widgetRewards === null || widgetRewards === void 0 ? void 0 : widgetRewards.length) > 1) { const animations = []; const posYs = widgetRewards.map(() => { const posY = new Animated.Value(0); const rewardAnimation = Animated.timing(posY, { toValue: 10, duration: 2000, useNativeDriver: true }); animations.push(rewardAnimation); return posY; }); const rewardAnimation = Animated.loop(Animated.sequence(animations)); rewardAnimation.start(); setPosys(posYs); return () => { rewardAnimation.reset(); }; } }, [widgetRewards]); const slideInOutStyles = useMemo(() => { if (!(widgetRewards !== null && widgetRewards !== void 0 && widgetRewards.length) || !posYs.length || widgetRewards.length !== posYs.length) { return []; } return widgetRewards.map((reward, i) => { return { translateY: posYs[i].interpolate({ inputRange: [0, 1, 9, 10], outputRange: [20, 0, 0, -20] }) }; }); }, [posYs, widgetRewards === null || widgetRewards === void 0 ? void 0 : widgetRewards.length]); return { slideInOutStyles }; }; //# sourceMappingURL=useWidgetRewardsEffect.js.map