Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4821.js (118.4 MB)
394 lines
15 KiB
TypeScript
394 lines
15 KiB
TypeScript
// Module ID: 13548
|
|
// Function ID: 13549
|
|
// Name: PremiumBogoPromotionUtilsCommon
|
|
// Dependencies: [5, 1371, 4300, 7553, 7497, 10793, 1373, 1074, 4228, 4294, 1150, 4877, 7520, 13549, 13550, 563, 7550, 8165, 13551, 13552, 4960, 13505, 2]
|
|
// Exports: maybeFetchActiveBogoPromotion, useIsEligibleForBogoPromotion
|
|
|
|
// Module 13548 (PremiumBogoPromotionUtilsCommon)
|
|
import useStateFromStores from "useStateFromStores" /* 563 */;
|
|
import PlatformUtils from "PlatformUtils" /* 1150 */;
|
|
import _modDef4228 from "module_4228" /* 4228 */;
|
|
import PremiumUtilsDefault from "PremiumUtils" /* 4294 */;
|
|
import shared_PlatformUtils from "shared/PlatformUtils" /* 4877 */;
|
|
import BlockedPaymentsCountryExperiment from "BlockedPaymentsCountryExperiment" /* 7520 */;
|
|
import usePremiumTrialOffer from "usePremiumTrialOffer" /* 7550 */;
|
|
import usePremiumDiscountOffer from "usePremiumDiscountOffer" /* 8165 */;
|
|
import PromotionsHooks from "PromotionsHooks" /* 13549 */;
|
|
import BogoPromotionExperiment from "BogoPromotionExperiment" /* 13550 */;
|
|
import useScheduledForcedUpdateDefault from "useScheduledForcedUpdate" /* 13551 */;
|
|
import BOGOPromotionMarketingMaterialsExperiments from "BOGOPromotionMarketingMaterialsExperiments" /* 13552 */;
|
|
import asyncGeneratorStep from "asyncGeneratorStep" /* 5 */;
|
|
import UserStore from "UserStore" /* 1371 */;
|
|
import SubscriptionStore from "SubscriptionStore" /* 4300 */;
|
|
import UserOfferStore from "UserOfferStore" /* 7553 */;
|
|
import EntitlementStore from "EntitlementStore" /* 7497 */;
|
|
import PromotionsStore from "PromotionsStore" /* 10793 */;
|
|
|
|
require = fn;
|
|
function isUserEligibleBasedOnCurrentOrPreviousSubs(experimentEnabled) {
|
|
({ premiumSubscription, mostRecentSubscription, previousPremiumSubscription } = experimentEnabled);
|
|
if (experimentEnabled.experimentEnabled) {
|
|
if (null != mostRecentSubscription) {
|
|
if (mostRecentSubscription.status === constants2.ENDED) {
|
|
const endedAt = mostRecentSubscription.endedAt;
|
|
if (null != endedAt) {
|
|
if (mostRecentSubscription.hasPremiumAtLeast(closure_1_10.TIER_2)) {
|
|
const obj = _modDef4228();
|
|
if (subtractResult.isBefore(endedAt)) {
|
|
return false;
|
|
}
|
|
subtractResult = _modDef4228().subtract(10, "days");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (null != previousPremiumSubscription) {
|
|
if (previousPremiumSubscription.status === constants2.ENDED) {
|
|
const endedAt2 = previousPremiumSubscription.endedAt;
|
|
if (null != endedAt2) {
|
|
if (previousPremiumSubscription.hasPremiumAtLeast(closure_1_10.TIER_2)) {
|
|
const obj3 = _modDef4228();
|
|
if (subtractResult1.isBefore(endedAt2)) {
|
|
return false;
|
|
}
|
|
subtractResult1 = _modDef4228().subtract(10, "days");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (null != premiumSubscription) {
|
|
let hasActiveTrial;
|
|
const currentUser = UserStore.getCurrentUser();
|
|
if (premiumSubscription != null) {
|
|
hasActiveTrial = premiumSubscription.hasActiveTrial;
|
|
}
|
|
let isPremiumExactlyResult = hasActiveTrial;
|
|
if (isPremiumExactlyResult) {
|
|
isPremiumExactlyResult = PremiumUtilsDefault.isPremiumExactly(currentUser, tmp22.TIER_0);
|
|
}
|
|
const hasPremiumAtLeastResult = premiumSubscription.hasPremiumAtLeast(closure_1_10.TIER_2);
|
|
tmp22 = closure_1_10;
|
|
let isAndroidResult = PlatformUtils.isAndroid();
|
|
if (isAndroidResult) {
|
|
isAndroidResult = premiumSubscription.paymentGateway !== constants.GOOGLE;
|
|
}
|
|
return false;
|
|
}
|
|
const isMobile = shared_PlatformUtils.isMobile;
|
|
let tmp20 = !isMobile;
|
|
if (isMobile) {
|
|
tmp20 = !EntitlementStore.isFractionalPremiumActive();
|
|
}
|
|
return tmp20;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function isEligibleForBOGOPromotion() {
|
|
const self = this;
|
|
const apply = closure_15.apply;
|
|
if (typeof apply === "unknown") {
|
|
let applyArgumentsResult = HermesBuiltin.applyArguments(self);
|
|
} else {
|
|
applyArgumentsResult = apply(self, arguments);
|
|
}
|
|
return applyArgumentsResult;
|
|
}
|
|
let closure_15 = async function _isEligibleForBOGOPromotion(arg0, value) {
|
|
if (c4 === 2) {
|
|
c4 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp4 === 3) {
|
|
if (arg0 === 1) {
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
const obj2 = { value, done: true };
|
|
return obj2;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c4 = 2;
|
|
if (0 === c3) {
|
|
if (arg0 === 1) {
|
|
c4 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 3;
|
|
const obj7 = { value, done: true };
|
|
return obj7;
|
|
} else {
|
|
closure_2 = tmp5;
|
|
closure_1 = tmp2;
|
|
closure_129_0 = undefined;
|
|
let flag = closure_0;
|
|
if (closure_0 === undefined) {
|
|
flag = true;
|
|
}
|
|
closure_129_0 = flag;
|
|
let currentUser2;
|
|
closure_129_2 = undefined;
|
|
let isPaymentsBlocked;
|
|
let bogoPromotionGateEnabled;
|
|
let bogoMarketingMaterialsEnabled;
|
|
closure_129_6 = undefined;
|
|
let mostRecentPremiumTypeSubscription;
|
|
c3 = 1;
|
|
c4 = 1;
|
|
return { value: "PX_16", done: true };
|
|
}
|
|
} else {
|
|
if (1 === tmp5) {
|
|
if (arg0 === 1) {
|
|
c4 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 3;
|
|
const obj9 = { value, done: true };
|
|
return obj9;
|
|
} else {
|
|
currentUser2 = closure_130_4.getCurrentUser();
|
|
let isClaimedResult;
|
|
if (currentUser2 != null) {
|
|
isClaimedResult = obj17.isClaimed();
|
|
}
|
|
closure_129_2 = !isClaimedResult;
|
|
isPaymentsBlocked = closure_130_0(closure_130_2[12]).getIsPaymentsBlocked();
|
|
obj17 = currentUser2;
|
|
const obj3 = closure_130_0(closure_130_2[12]);
|
|
bogoPromotionGateEnabled = closure_130_0(closure_130_2[14]).getBogoPromotionGateEnabled("bogo eligibility async check");
|
|
const obj4 = closure_130_0(closure_130_2[14]);
|
|
bogoMarketingMaterialsEnabled = closure_130_0(closure_130_2[19]).getBogoMarketingMaterialsEnabled("bogo marketing eligibility async check");
|
|
const isMobile = closure_130_0(closure_130_2[11]).isMobile;
|
|
let isAndroidResult = !isMobile;
|
|
if (isMobile) {
|
|
isAndroidResult = closure_130_0(closure_130_2[10]).isAndroid();
|
|
const obj6 = closure_130_0(closure_130_2[10]);
|
|
}
|
|
closure_129_6 = isAndroidResult;
|
|
if (!closure_129_2) {
|
|
if (!isPaymentsBlocked) {
|
|
if (bogoPromotionGateEnabled) {
|
|
if (!closure_129_0) {
|
|
if (closure_129_6) {
|
|
if (closure_130_6.hasFetchedOffer()) {
|
|
c4 = 3;
|
|
return { value: false, done: true };
|
|
}
|
|
const result = closure_130_5.hasFetchedMostRecentPremiumTypeSubscription();
|
|
let tmp37 = !result;
|
|
if (!result) {
|
|
const currentUser = closure_130_4.getCurrentUser();
|
|
let hasPurchasedFlagResult;
|
|
if (currentUser != null) {
|
|
hasPurchasedFlagResult = currentUser.hasPurchasedFlag(closure_130_9.PREMIUM_TIER_2);
|
|
}
|
|
tmp37 = hasPurchasedFlagResult;
|
|
}
|
|
if (tmp37) {
|
|
c3 = 2;
|
|
c4 = 1;
|
|
const obj10 = { value: closure_130_0(closure_130_2[20]).fetchMostRecentSubscription(), done: false };
|
|
return obj10;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
c4 = 3;
|
|
return { value: false, done: true };
|
|
}
|
|
} else {
|
|
if (2 === tmp5) {
|
|
if (arg0 === 1) {
|
|
c4 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 3;
|
|
const obj11 = { value, done: true };
|
|
return obj11;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c4 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
}
|
|
mostRecentPremiumTypeSubscription = closure_130_5.getMostRecentPremiumTypeSubscription();
|
|
const obj13 = { experimentEnabled: bogoPromotionGateEnabled, premiumSubscription: closure_130_5.getPremiumTypeSubscription(), mostRecentSubscription: mostRecentPremiumTypeSubscription, previousPremiumSubscription: closure_130_5.getPreviousPremiumTypeSubscription() };
|
|
c4 = 3;
|
|
const obj14 = { value: closure_130_13(obj13), done: true };
|
|
return obj14;
|
|
}
|
|
if (!closure_130_5.hasFetchedSubscriptions()) {
|
|
c3 = 3;
|
|
c4 = 1;
|
|
const obj15 = { value: closure_130_0(closure_130_2[20]).fetchSubscriptions(), done: false };
|
|
return obj15;
|
|
}
|
|
}
|
|
} catch (tmp59) {
|
|
c4 = tmp;
|
|
throw tmp59;
|
|
}
|
|
}
|
|
};
|
|
let closure_16 = async function _maybeFetchActiveBogoPromotion(arg0, value) {
|
|
if (c3 === 2) {
|
|
c3 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp4 === 3) {
|
|
if (arg0 === 1) {
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
const obj2 = { value, done: true };
|
|
return obj2;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c3 = 2;
|
|
if (0 === c2) {
|
|
if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
const obj4 = { value, done: true };
|
|
return obj4;
|
|
} else {
|
|
closure_1 = tmp5;
|
|
closure_0 = tmp2;
|
|
let bogoPromotion;
|
|
c2 = 1;
|
|
c3 = 1;
|
|
const obj5 = { value: isEligibleForBOGOPromotion(false), done: false };
|
|
return obj5;
|
|
}
|
|
} else {
|
|
if (1 === tmp5) {
|
|
if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
const obj6 = { value, done: true };
|
|
return obj6;
|
|
} else if (value) {
|
|
bogoPromotion = closure_129_8.bogoPromotion;
|
|
if (null != bogoPromotion) {
|
|
const _Date = Date;
|
|
const date = new Date(bogoPromotion.endDate);
|
|
const _Date2 = Date;
|
|
if (valueOfResult >= Date.now()) {
|
|
c3 = 3;
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
valueOfResult = date.valueOf();
|
|
}
|
|
c2 = 2;
|
|
c3 = 1;
|
|
const obj7 = { value: closure_129_0(closure_129_2[21]).fetchActiveBogoPromotion(), done: false };
|
|
return obj7;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
}
|
|
c3 = 3;
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} catch (tmp22) {
|
|
c3 = tmp;
|
|
throw tmp22;
|
|
}
|
|
}
|
|
};
|
|
const PremiumConstants = fn(1373);
|
|
({ PurchasedFlags: closure_9, PremiumTypes: c10 } = PremiumConstants);
|
|
const Constants = fn(1074);
|
|
({ PaymentGateways: closure_11, SubscriptionStatusTypes: closure_12 } = Constants);
|
|
const size = fn(2);
|
|
let result = size.fileFinishedImporting("modules/premium/PremiumBogoPromotionUtilsCommon.tsx");
|
|
|
|
export { isUserEligibleBasedOnCurrentOrPreviousSubs };
|
|
export const useIsEligibleForBogoPromotion = function useIsEligibleForBogoPromotion() {
|
|
let flag = arg0;
|
|
if (arg0 === undefined) {
|
|
flag = true;
|
|
}
|
|
const isPaymentsBlocked = BlockedPaymentsCountryExperiment.useIsPaymentsBlocked();
|
|
const promotion = PromotionsHooks.useBogoPromotion().promotion;
|
|
const bogoPromotionGateEnabled = BogoPromotionExperiment.useBogoPromotionGateEnabled("bogo eligibility hook");
|
|
const items = [SubscriptionStore];
|
|
const stateFromStoresObject = useStateFromStores.useStateFromStoresObject(items, () => ({ mostRecentSubscription: SubscriptionStore.getMostRecentPremiumTypeSubscription(), premiumSubscription: SubscriptionStore.getPremiumTypeSubscription(), previousPremiumSubscription: SubscriptionStore.getPreviousPremiumTypeSubscription() }));
|
|
({ mostRecentSubscription, premiumSubscription, previousPremiumSubscription } = stateFromStoresObject);
|
|
const premiumTrialOffer = usePremiumTrialOffer.usePremiumTrialOffer();
|
|
let num;
|
|
const premiumDiscountOffer = usePremiumDiscountOffer.usePremiumDiscountOffer();
|
|
if (promotion != null) {
|
|
num = promotion.endDate;
|
|
}
|
|
if (num == null) {
|
|
num = 0;
|
|
}
|
|
const valueOfResult = new Date(num).valueOf();
|
|
const timestamp = Date.now();
|
|
let num2 = -1;
|
|
const date = new Date(num);
|
|
if (timestamp <= valueOfResult) {
|
|
num2 = valueOfResult - timestamp;
|
|
}
|
|
useScheduledForcedUpdateDefault({ delay: num2 });
|
|
const isMobile = tmp(4877).isMobile;
|
|
let isAndroidResult = !isMobile;
|
|
if (isMobile) {
|
|
isAndroidResult = tmp(1150).isAndroid();
|
|
const tmpResult = tmp(1150);
|
|
}
|
|
const tmp14 = isUserEligibleBasedOnCurrentOrPreviousSubs({ experimentEnabled: bogoPromotionGateEnabled, premiumSubscription, mostRecentSubscription, previousPremiumSubscription });
|
|
let bogoMarketingMaterialsEnabled = BOGOPromotionMarketingMaterialsExperiments.useBogoMarketingMaterialsEnabled("bogo marketing eligibility hook");
|
|
let tmp16 = !tmp10;
|
|
if (timestamp <= valueOfResult) {
|
|
if (!flag) {
|
|
if (isAndroidResult) {
|
|
isAndroidResult = tmp14;
|
|
}
|
|
if (isAndroidResult) {
|
|
isAndroidResult = null == premiumTrialOffer;
|
|
}
|
|
if (isAndroidResult) {
|
|
isAndroidResult = null != promotion;
|
|
}
|
|
if (isAndroidResult) {
|
|
isAndroidResult = !isPaymentsBlocked;
|
|
}
|
|
if (isAndroidResult) {
|
|
isAndroidResult = null == premiumDiscountOffer;
|
|
}
|
|
bogoMarketingMaterialsEnabled = isAndroidResult;
|
|
}
|
|
tmp16 = bogoMarketingMaterialsEnabled;
|
|
}
|
|
return tmp16;
|
|
};
|
|
export { isEligibleForBOGOPromotion };
|
|
export const maybeFetchActiveBogoPromotion = function maybeFetchActiveBogoPromotion() {
|
|
const self = this;
|
|
const apply = closure_16.apply;
|
|
if (typeof apply === "unknown") {
|
|
let applyArgumentsResult = HermesBuiltin.applyArguments(self);
|
|
} else {
|
|
applyArgumentsResult = apply(self, arguments);
|
|
}
|
|
return applyArgumentsResult;
|
|
};
|