decord/source/modules/premium/PremiumBogoPromotionUtilsCommon.tsx

177 lines
7 KiB
TypeScript
Raw Normal View History

2026-07-24 07:16:23 +00:00
// Module ID: 12450
// Function ID: 96588
2026-07-20 16:05:17 +00:00
// Name: isUserEligibleBasedOnCurrentOrPreviousSubs
2026-07-24 07:16:23 +00:00
// Dependencies: [5, 1849, 3782, 6688, 6637, 7129, 1851, 653, 3712, 3776, 477, 4368, 6656, 12451, 12452, 624, 6686, 7126, 12453, 12454, 4451, 7426, 2]
2026-07-20 16:05:17 +00:00
// Exports: maybeFetchActiveBogoPromotion, useIsEligibleForBogoPromotion
2026-07-24 07:16:23 +00:00
// Module 12450 (isUserEligibleBasedOnCurrentOrPreviousSubs)
2026-07-23 10:11:24 +00:00
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import closure_4 from "_isNativeReflectConstruct";
import closure_5 from "_isNativeReflectConstruct";
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
import closure_7 from "_isNativeReflectConstruct";
import closure_8 from "_isNativeReflectConstruct";
import GuildFeatures from "GuildFeatures";
import ME from "ME";
let closure_10;
let closure_11;
let closure_12;
let closure_9;
const require = arg1;
2026-07-20 16:05:17 +00:00
function isUserEligibleBasedOnCurrentOrPreviousSubs(experimentEnabled) {
let mostRecentSubscription;
let premiumSubscription;
let previousPremiumSubscription;
({ 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_10.TIER_2)) {
2026-07-23 10:11:24 +00:00
const obj = importDefault(3712)();
2026-07-20 16:05:17 +00:00
if (subtractResult.isBefore(endedAt)) {
return false;
}
2026-07-23 10:11:24 +00:00
subtractResult = importDefault(3712)().subtract(10, "days");
2026-07-20 16:05:17 +00:00
}
}
}
}
if (null != previousPremiumSubscription) {
if (previousPremiumSubscription.status === constants2.ENDED) {
const endedAt2 = previousPremiumSubscription.endedAt;
if (null != endedAt2) {
if (previousPremiumSubscription.hasPremiumAtLeast(closure_10.TIER_2)) {
2026-07-23 10:11:24 +00:00
const obj3 = importDefault(3712)();
2026-07-20 16:05:17 +00:00
if (subtractResult1.isBefore(endedAt2)) {
return false;
}
2026-07-23 10:11:24 +00:00
subtractResult1 = importDefault(3712)().subtract(10, "days");
2026-07-20 16:05:17 +00:00
}
}
}
}
if (null != premiumSubscription) {
let tmp10 = null == premiumSubscription;
2026-07-23 10:11:24 +00:00
currentUser = currentUser.getCurrentUser();
2026-07-20 16:05:17 +00:00
if (!tmp10) {
tmp10 = !premiumSubscription.hasActiveTrial;
}
let isPremiumExactlyResult = !tmp10;
if (!tmp10) {
2026-07-23 10:11:24 +00:00
isPremiumExactlyResult = importDefault(3776).isPremiumExactly(currentUser, closure_10.TIER_0);
const obj5 = importDefault(3776);
2026-07-20 16:05:17 +00:00
}
const hasPremiumAtLeastResult = premiumSubscription.hasPremiumAtLeast(closure_10.TIER_2);
2026-07-23 10:11:24 +00:00
let isAndroidResult = require(477) /* set */.isAndroid();
2026-07-20 16:05:17 +00:00
if (isAndroidResult) {
isAndroidResult = premiumSubscription.paymentGateway !== constants.GOOGLE;
}
return false;
}
2026-07-23 10:11:24 +00:00
let tmp21 = !require(4368) /* isTablet */.isMobile;
2026-07-20 16:05:17 +00:00
if (!tmp21) {
tmp21 = !fractionalPremiumActive.isFractionalPremiumActive();
}
return tmp21;
} else {
return false;
}
}
function isEligibleForBOGOPromotion() {
return _isEligibleForBOGOPromotion(...arguments);
}
function _isEligibleForBOGOPromotion() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
return obj(...arguments);
}
function _maybeFetchActiveBogoPromotion() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
return obj(...arguments);
}
2026-07-23 10:11:24 +00:00
({ PurchasedFlags: closure_9, PremiumTypes: closure_10 } = GuildFeatures);
({ PaymentGateways: closure_11, SubscriptionStatusTypes: closure_12 } = ME);
const result = require("_isNativeReflectConstruct").fileFinishedImporting("modules/premium/PremiumBogoPromotionUtilsCommon.tsx");
2026-07-20 16:05:17 +00:00
export { isUserEligibleBasedOnCurrentOrPreviousSubs };
export const useIsEligibleForBogoPromotion = function useIsEligibleForBogoPromotion() {
let mostRecentSubscription;
let premiumSubscription;
let previousPremiumSubscription;
let flag = arg0;
if (arg0 === undefined) {
flag = true;
}
2026-07-23 10:11:24 +00:00
let obj = require(6656) /* items */;
2026-07-20 16:05:17 +00:00
const isPaymentsBlocked = obj.useIsPaymentsBlocked();
2026-07-24 07:16:23 +00:00
const promotion = require(12451) /* useEligibleActiveOutboundPromotions */.useBogoPromotion().promotion;
const obj2 = require(12451) /* useEligibleActiveOutboundPromotions */;
const bogoPromotionGateEnabled = require(12452) /* apexExperiment */.useBogoPromotionGateEnabled("bogo eligibility hook");
const obj3 = require(12452) /* apexExperiment */;
2026-07-20 16:05:17 +00:00
const items = [closure_5];
2026-07-23 10:11:24 +00:00
const stateFromStoresObject = require(624) /* defaultAreStatesEqual */.useStateFromStoresObject(items, () => ({ mostRecentSubscription: outer1_5.getMostRecentPremiumTypeSubscription(), premiumSubscription: outer1_5.getPremiumTypeSubscription(), previousPremiumSubscription: outer1_5.getPreviousPremiumTypeSubscription() }));
2026-07-20 16:05:17 +00:00
({ mostRecentSubscription, premiumSubscription, previousPremiumSubscription } = stateFromStoresObject);
2026-07-23 10:11:24 +00:00
const obj4 = require(624) /* defaultAreStatesEqual */;
const premiumTrialOffer = require(6686) /* useGetTrialOffer */.usePremiumTrialOffer();
const obj5 = require(6686) /* useGetTrialOffer */;
2026-07-20 16:05:17 +00:00
let endDate;
2026-07-24 07:16:23 +00:00
const premiumDiscountOffer = require(7126) /* useGetDiscountOffer */.usePremiumDiscountOffer();
2026-07-20 16:05:17 +00:00
if (null != promotion) {
endDate = promotion.endDate;
}
let num = 0;
if (null != endDate) {
num = endDate;
}
2026-07-24 07:16:23 +00:00
const obj6 = require(7126) /* useGetDiscountOffer */;
2026-07-20 16:05:17 +00:00
const valueOfResult = new Date(num).valueOf();
const timestamp = Date.now();
obj = {};
let num2 = -1;
const date = new Date(num);
if (timestamp <= valueOfResult) {
num2 = valueOfResult - timestamp;
}
obj.delay = num2;
2026-07-24 07:16:23 +00:00
importDefault(12453)(obj);
2026-07-23 10:11:24 +00:00
let isAndroidResult = !require(4368) /* isTablet */.isMobile;
2026-07-20 16:05:17 +00:00
if (!isAndroidResult) {
2026-07-23 10:11:24 +00:00
isAndroidResult = require(477) /* set */.isAndroid();
const obj9 = require(477) /* set */;
2026-07-20 16:05:17 +00:00
}
2026-07-24 07:16:23 +00:00
const tmp10 = importDefault(12453);
2026-07-20 16:05:17 +00:00
const tmp15 = isUserEligibleBasedOnCurrentOrPreviousSubs({ experimentEnabled: bogoPromotionGateEnabled, premiumSubscription, mostRecentSubscription, previousPremiumSubscription });
2026-07-24 07:16:23 +00:00
let bogoMarketingMaterialsEnabled = require(12454) /* apexExperiment */.useBogoMarketingMaterialsEnabled("bogo marketing eligibility hook");
2026-07-20 16:05:17 +00:00
let tmp17 = !tmp9;
if (timestamp <= valueOfResult) {
if (!flag) {
if (isAndroidResult) {
isAndroidResult = tmp15;
}
if (isAndroidResult) {
isAndroidResult = null == premiumTrialOffer;
}
if (isAndroidResult) {
isAndroidResult = null != promotion;
}
if (isAndroidResult) {
isAndroidResult = !isPaymentsBlocked;
}
if (isAndroidResult) {
isAndroidResult = null == premiumDiscountOffer;
}
bogoMarketingMaterialsEnabled = isAndroidResult;
}
tmp17 = bogoMarketingMaterialsEnabled;
}
return tmp17;
};
export { isEligibleForBOGOPromotion };
export const maybeFetchActiveBogoPromotion = function maybeFetchActiveBogoPromotion() {
return _maybeFetchActiveBogoPromotion(...arguments);
};