UNPKG

@livelike/react-native

Version:

LiveLike React Native package

49 lines (48 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePredictionClaimRewardEffect = usePredictionClaimRewardEffect; var _javascript = require("@livelike/javascript"); var _react = require("react"); var _store = require("../store"); var _useWidgetInteractions = require("./useWidgetInteractions"); /** * @description `usePredictionClaimRewardEffect` hook claims the prediction reward * whenever a prediction follow up based UI is rendered. * Internally it calls claimPredictionWidgetRewards JS API. */ function usePredictionClaimRewardEffect(_ref) { let { widgetId, widgetKind } = _ref; const claimedRef = (0, _react.useRef)(null); const widgetInteracions = (0, _useWidgetInteractions.useWidgetInteractions)({ widgetId }); const widgetInteraction = widgetInteracions === null || widgetInteracions === void 0 ? void 0 : widgetInteracions[0]; (0, _react.useEffect)(() => { if (claimedRef.current) { claimedRef.current = false; } }, [widgetId, widgetKind]); (0, _react.useEffect)(() => { if (claimedRef.current || !widgetInteraction) { return; } (0, _javascript.claimPredictionWidgetRewards)({ widgetId, widgetKind }).then(res => { claimedRef.current = true; _store.widgetStoreActions.updateWidgetRewardsAction({ widgetId, widgetRewards: res.rewards }); }).catch(error => { (0, _javascript.hasDebugLogger)() && console.error('Error while claiming reward', error); }); }, [widgetId, widgetKind, widgetInteraction]); } //# sourceMappingURL=usePredictionClaimRewardEffect.js.map