@livelike/react-native
Version:
LiveLike React Native package
57 lines (56 loc) • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useWidgetRewardsEffect = void 0;
var _react = require("react");
var _reactNative = require("react-native");
var _useWidgetRewards = require("./useWidgetRewards");
const useWidgetRewardsEffect = _ref => {
let {
widgetId
} = _ref;
const widgetRewards = (0, _useWidgetRewards.useWidgetRewards)({
widgetId
});
const [posYs, setPosys] = (0, _react.useState)([]);
(0, _react.useEffect)(() => {
if (widgetRewards && (widgetRewards === null || widgetRewards === void 0 ? void 0 : widgetRewards.length) > 1) {
const animations = [];
const posYs = widgetRewards.map(() => {
const posY = new _reactNative.Animated.Value(0);
const rewardAnimation = _reactNative.Animated.timing(posY, {
toValue: 10,
duration: 2000,
useNativeDriver: true
});
animations.push(rewardAnimation);
return posY;
});
const rewardAnimation = _reactNative.Animated.loop(_reactNative.Animated.sequence(animations));
rewardAnimation.start();
setPosys(posYs);
return () => {
rewardAnimation.reset();
};
}
}, [widgetRewards]);
const slideInOutStyles = (0, _react.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
};
};
exports.useWidgetRewardsEffect = useWidgetRewardsEffect;
//# sourceMappingURL=useWidgetRewardsEffect.js.map