@livelike/react-native
Version:
LiveLike React Native package
49 lines (48 loc) • 1.64 kB
JavaScript
;
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