decord/alpha/source/modules/premium/PremiumSubscriptionOfferUtil.tsx
2026-10-12 06:59:38 +00:00

503 lines
17 KiB
TypeScript

// Module ID: 8088
// Function ID: 8089
// Name: PremiumSubscriptionOfferUtil
// Dependencies: [32, 19, 4775, 1392, 558, 7170, 8089, 8090, 576, 504, 4702, 8091, 8092, 1998, 8095, 2]
// Exports: renewalInvoiceChurnDiscountInfo, useIsNUXEligible
// Module 8088 (PremiumSubscriptionOfferUtil)
import react2 from "react" /* 576 */;
import Server from "Server" /* 1998 */;
import _modDef4702 from "module_4702" /* 4702 */;
import usePremiumTrialOffer from "usePremiumTrialOffer" /* 7170 */;
import PremiumSubscriptionTrialUtil from "PremiumSubscriptionTrialUtil" /* 8089 */;
import usePremiumDiscountOffer from "usePremiumDiscountOffer" /* 8090 */;
import useDiscountOfferDefault from "useDiscountOffer" /* 8091 */;
import ReverseTrialUtils from "ReverseTrialUtils" /* 8095 */;
import _slicedToArray from "_slicedToArray" /* 32 */;
import react from "react" /* 19 */;
import SubscriptionStore from "SubscriptionStore" /* 4775 */;
import PremiumConstants from "PremiumConstants" /* 1392 */;
import ReactCompilerGating_mod from "ReactCompilerGating" /* 558 */;
import size from "module_2" /* 2 */;
let c10;
let c9;
let closure_12;
let closure_14;
let closure_15;
let closure_16;
let closure_17;
let closure_18;
let closure_19;
let closure_20;
let closure_21;
let map1;
let metroImportAll;
let metroImportDefault;
let metroRequire;
let tmp;
let unpackModuleId;
const get_initialized = tmp(504);
const UserOfferActionCreators = tmp(8092);
function getDiscountInfo(active_discount_id) {
if (authStore !== active_discount_id) {
if (authStore2 !== active_discount_id) {
if (closure_19 === active_discount_id) {
return { duration: 1, percentage: 10, discountId: active_discount_id };
} else if (closure_20 === active_discount_id) {
return { duration: 1, percentage: 50, discountId: active_discount_id };
} else {
if (unpackModuleId !== active_discount_id) {
if (syncedClientThemes !== active_discount_id) {
if (authStore3 !== active_discount_id) {
if (map1 === active_discount_id) {
return { duration: 1, percentage: 40, discountId: active_discount_id };
} else if (metroRequire === active_discount_id) {
return { duration: 1, percentage: 20, discountId: active_discount_id };
} else if (metroImportDefault === active_discount_id) {
return { duration: 1, percentage: 25, discountId: active_discount_id };
} else if (metroImportAll === active_discount_id) {
return { duration: 12, percentage: 20, discountId: active_discount_id };
} else if (React4 === active_discount_id) {
return { duration: 12, percentage: 30, discountId: active_discount_id };
} else if (authStore4 === active_discount_id) {
return { duration: 1, percentage: 40, discountId: active_discount_id };
} else if (authStore5 === active_discount_id) {
return { duration: 3, percentage: 30, discountId: active_discount_id };
} else if (closure_17 === active_discount_id) {
return { duration: 1, percentage: 30, discountId: active_discount_id };
}
}
}
}
return { duration: 3, percentage: 30, discountId: active_discount_id };
}
}
}
return { duration: 1, percentage: 30, discountId: active_discount_id };
}
({ PREMIUM_TIER_2_ANNUAL_20_PERCENT_DISCOUNT_ID: metroRequire, PREMIUM_TIER_2_ANNUAL_25_PERCENT_DISCOUNT_ID: metroImportDefault, PREMIUM_TIER_2_ANNUAL_V2_20_PERCENT_DISCOUNT_ID: metroImportAll, PREMIUM_TIER_2_ANNUAL_V2_30_PERCENT_DISCOUNT_ID: c9, PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID: c10, PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID: unpackModuleId, PREMIUM_TIER_2_LIKELIHOOD_1_MONTH_30_PERCENT_DISCOUNT_ID: closure_12, PREMIUM_TIER_2_LIKELIHOOD_1_MONTH_40_PERCENT_DISCOUNT_ID: map1, PREMIUM_TIER_2_LIKELIHOOD_DISCOUNT_ID: closure_14, PREMIUM_TIER_2_REACTIVATION_DISCOUNT_ID: closure_15, PREMIUM_TIER_2_REENGAGEMENT_1_MONTH_40_PERCENT_DISCOUNT_ID: closure_16, PREMIUM_TIER_2_REFERRAL_INCENTIVE_DISCOUNT_ID: closure_17, PREMIUM_GROUP_30_PERCENT_3_MONTH_DISCOUNT_ID: closure_18, PREMIUM_TIER_2_CHURN_1_MONTH_10_PERCENT_DISCOUNT_ID: closure_19, PREMIUM_TIER_2_CHURN_1_MONTH_50_PERCENT_DISCOUNT_ID: closure_20, CHURN_DISCOUNT_IDS: closure_21 } = PremiumConstants);
let ReactCompilerGating = ReactCompilerGating_mod;
let tmp3 = ReactCompilerGating.isReactCompilerEnabled() ? (function useIsInPremiumOfferExperience() {
const obj = usePremiumTrialOffer;
const premiumTrialOffer = obj.usePremiumTrialOffer();
const obj2 = PremiumSubscriptionTrialUtil;
const hasActiveTrial = obj2.useHasActiveTrial();
const obj3 = usePremiumDiscountOffer;
const premiumDiscountOffer = obj3.usePremiumDiscountOffer();
const obj4 = usePremiumDiscountOffer;
const premiumGroupDiscountOffer = obj4.usePremiumGroupDiscountOffer();
let tmp6 = null != premiumTrialOffer;
const tmp5 = closure_22();
if (!tmp6) {
tmp6 = hasActiveTrial;
}
if (!tmp6) {
tmp6 = null != premiumDiscountOffer;
}
if (!tmp6) {
tmp6 = null != premiumGroupDiscountOffer;
}
if (!tmp6) {
tmp6 = tmp5;
}
return tmp6;
}) : (function useIsInPremiumOfferExperience() {
const obj = usePremiumTrialOffer;
const premiumTrialOffer = obj.usePremiumTrialOffer();
const obj2 = PremiumSubscriptionTrialUtil;
const hasActiveTrial = obj2.useHasActiveTrial();
const obj3 = usePremiumDiscountOffer;
const premiumDiscountOffer = obj3.usePremiumDiscountOffer();
const obj4 = usePremiumDiscountOffer;
const premiumGroupDiscountOffer = obj4.usePremiumGroupDiscountOffer();
let tmp6 = null != premiumTrialOffer;
const tmp5 = closure_22();
if (!tmp6) {
tmp6 = hasActiveTrial;
}
if (!tmp6) {
tmp6 = null != premiumDiscountOffer;
}
if (!tmp6) {
tmp6 = null != premiumGroupDiscountOffer;
}
if (!tmp6) {
tmp6 = tmp5;
}
return tmp6;
});
ReactCompilerGating = ReactCompilerGating_mod;
let tmp4 = ReactCompilerGating.isReactCompilerEnabled() ? (() => {
let premiumTypeSubscription;
let tmp4;
let tmp5;
let tmp9;
const obj = react2;
const cResult = obj.c(4);
if (cResult[0] === Symbol.for("react.memo_cache_sentinel")) {
const items = [SubscriptionStore];
const fn = function n() {
return premiumTypeSubscription.getPremiumTypeSubscription();
};
cResult[0] = items;
cResult[1] = fn;
tmp4 = items;
tmp5 = fn;
} else {
[tmp4, tmp5] = cResult;
}
const tmpResult = get_initialized;
const stateFromStores = tmpResult.useStateFromStores(tmp4, tmp5);
let prop;
if (stateFromStores != null) {
const metadata = stateFromStores.metadata;
if (metadata != null) {
prop = metadata.active_discount_expires_at;
}
}
if (cResult[2] !== prop) {
let tmp10 = null != prop;
if (tmp10) {
const _Date = Date;
const tmp12 = _modDef4702;
const tmp12Result = tmp12(Date.now());
tmp10 = tmp12Result <= _modDef4702(prop);
}
cResult[2] = prop;
cResult[3] = tmp10;
tmp9 = tmp10;
} else {
tmp9 = cResult[3];
}
return tmp9;
}) : (() => {
let premiumTypeSubscription;
const items = [SubscriptionStore];
const obj = get_initialized;
const stateFromStores = obj.useStateFromStores(items, () => premiumTypeSubscription.getPremiumTypeSubscription());
let prop;
if (stateFromStores != null) {
const metadata = stateFromStores.metadata;
if (metadata != null) {
prop = metadata.active_discount_expires_at;
}
}
let tmp4 = null != prop;
if (tmp4) {
const _Date = Date;
const tmp6 = _modDef4702;
const tmp6Result = tmp6(Date.now());
tmp4 = tmp6Result <= _modDef4702(prop);
}
return tmp4;
});
let closure_22 = tmp4;
ReactCompilerGating = ReactCompilerGating_mod;
let tmp5 = ReactCompilerGating.isReactCompilerEnabled() ? (function useActiveDiscountInfo() {
let premiumTypeSubscription;
let tmp4;
let tmp5;
let tmp9;
const obj = react2;
const cResult = obj.c(4);
if (cResult[0] === Symbol.for("react.memo_cache_sentinel")) {
const items = [SubscriptionStore];
const fn = function n() {
return premiumTypeSubscription.getPremiumTypeSubscription();
};
cResult[0] = items;
cResult[1] = fn;
tmp4 = items;
tmp5 = fn;
} else {
[tmp4, tmp5] = cResult;
}
const tmpResult = get_initialized;
const stateFromStores = tmpResult.useStateFromStores(tmp4, tmp5);
let active_discount_id;
if (stateFromStores != null) {
const metadata = stateFromStores.metadata;
if (metadata != null) {
active_discount_id = metadata.active_discount_id;
}
}
if (cResult[2] !== active_discount_id) {
const tmp11 = getDiscountInfo(active_discount_id);
cResult[2] = active_discount_id;
cResult[3] = tmp11;
tmp9 = tmp11;
} else {
tmp9 = cResult[3];
}
return tmp9;
}) : (function useActiveDiscountInfo() {
let premiumTypeSubscription;
const items = [SubscriptionStore];
const obj = get_initialized;
const stateFromStores = obj.useStateFromStores(items, () => premiumTypeSubscription.getPremiumTypeSubscription());
let active_discount_id;
if (stateFromStores != null) {
const metadata = stateFromStores.metadata;
if (metadata != null) {
active_discount_id = metadata.active_discount_id;
}
}
return getDiscountInfo(active_discount_id);
});
ReactCompilerGating = ReactCompilerGating_mod;
let tmp6 = ReactCompilerGating.isReactCompilerEnabled() ? (function useFetchChurnUserDiscountOffer(arg0) {
let closure_129_0;
let closure_129_2;
let tmp11;
let tmp12;
let tmp14;
let tmp9;
const obj = react2;
const cResult = obj.c(8);
let tmp4 = useDiscountOfferDefault(authStore);
const tmp5 = useDiscountOfferDefault(closure_19);
const tmp6 = useDiscountOfferDefault(closure_20);
const tmp7 = useDiscountOfferDefault(unpackModuleId);
[tmp9, closure_129_0] = react.useState(false);
_slicedToArray(react.useState(false), 2);
[tmp11, tmp12] = react.useState(false);
let closure_1 = tmp12;
_slicedToArray(react.useState(false), 2);
[tmp14, closure_129_2] = react.useState(null);
_slicedToArray(react.useState(null), 2);
if (tmp4 == null) {
tmp4 = tmp5;
}
if (tmp4 == null) {
tmp4 = tmp6;
}
if (tmp4 == null) {
tmp4 = tmp7;
}
if (tmp4 == null) {
tmp4 = null;
}
if (null != tmp4) {
let tmp20;
if (cResult[0] !== tmp4) {
const obj2 = { churnUserDiscountOffer: tmp4, isFetchingChurnDiscountOffer: false };
cResult[0] = tmp4;
cResult[1] = obj2;
tmp20 = obj2;
} else {
tmp20 = cResult[1];
}
return tmp20;
} else {
const tmp21 = arg0;
if (tmp21) {
if (cResult[2] === tmp14) {
let tmp19;
if (cResult[3] === tmp11) {
tmp19 = cResult[4];
}
return tmp19;
}
const obj3 = { churnUserDiscountOffer: tmp14, isFetchingChurnDiscountOffer: tmp11 };
cResult[2] = tmp14;
cResult[3] = tmp11;
cResult[4] = obj3;
tmp19 = obj3;
} else {
function onFetchComplete() {
}
const tmp15 = tmp11 || tmp9;
if (!tmp15) {
tmp12(true);
const tmpResult = UserOfferActionCreators;
const churnDiscountOffer = tmpResult.fetchChurnDiscountOffer();
const nextPromise = churnDiscountOffer.then((result) => {
closure_1_2(result);
if (typeof onFetchComplete === "function") {
closure_1_0(true);
tmp12(false);
} else {
throw new TypeError("Trying to call a non-function");
}
});
nextPromise.catch(() => {
if (typeof onFetchComplete === "function") {
closure_1_0(true);
tmp12(false);
} else {
throw new TypeError("Trying to call a non-function");
}
});
}
if (cResult[5] === tmp14) {
let tmp18;
if (cResult[6] === tmp11) {
tmp18 = cResult[7];
}
return tmp18;
}
const obj4 = { churnUserDiscountOffer: tmp14, isFetchingChurnDiscountOffer: tmp11 };
cResult[5] = tmp14;
cResult[6] = tmp11;
cResult[7] = obj4;
tmp18 = obj4;
}
}
}) : (function useFetchChurnUserDiscountOffer(arg0) {
let closure_129_0;
let closure_129_2;
let tmp10;
let tmp12;
let tmp7;
let tmp9;
let tmp2 = useDiscountOfferDefault(authStore);
const tmp3 = useDiscountOfferDefault(closure_19);
const tmp4 = useDiscountOfferDefault(closure_20);
const tmp5 = useDiscountOfferDefault(unpackModuleId);
[tmp7, closure_129_0] = react.useState(false);
_slicedToArray(react.useState(false), 2);
[tmp9, tmp10] = react.useState(false);
let closure_1 = tmp10;
_slicedToArray(react.useState(false), 2);
[tmp12, closure_129_2] = react.useState(null);
_slicedToArray(react.useState(null), 2);
if (tmp2 == null) {
tmp2 = tmp3;
}
if (tmp2 == null) {
tmp2 = tmp4;
}
if (tmp2 == null) {
tmp2 = tmp5;
}
if (tmp2 == null) {
tmp2 = null;
}
if (null != tmp2) {
return { churnUserDiscountOffer: tmp2, isFetchingChurnDiscountOffer: false };
} else {
const tmp17 = arg0;
if (tmp17) {
return { churnUserDiscountOffer: tmp12, isFetchingChurnDiscountOffer: tmp9 };
} else {
const tmp13 = tmp9 || tmp7;
if (!tmp13) {
tmp10(true);
const obj = UserOfferActionCreators;
const churnDiscountOffer = obj.fetchChurnDiscountOffer();
const nextPromise = churnDiscountOffer.then((result) => {
closure_1_2(result);
closure_1_0(true);
tmp10(false);
});
nextPromise.catch(() => {
closure_1_0(true);
tmp10(false);
});
}
return { churnUserDiscountOffer: tmp12, isFetchingChurnDiscountOffer: tmp9 };
}
}
});
ReactCompilerGating = ReactCompilerGating_mod;
let tmp7 = ReactCompilerGating.isReactCompilerEnabled() ? (function useShouldFetchChurnOffer() {
let premiumTypeSubscription;
let tmp4;
let tmp5;
const obj = react2;
const cResult = obj.c(2);
if (cResult[0] === Symbol.for("react.memo_cache_sentinel")) {
const items = [SubscriptionStore];
const fn = function n() {
return premiumTypeSubscription.getPremiumTypeSubscription();
};
cResult[0] = items;
cResult[1] = fn;
tmp4 = items;
tmp5 = fn;
} else {
[tmp4, tmp5] = cResult;
}
const tmpResult = get_initialized;
const stateFromStores = tmpResult.useStateFromStores(tmp4, tmp5);
let hasPremiumNitroMonthly = null !== stateFromStores;
const tmp8 = closure_22();
if (hasPremiumNitroMonthly) {
hasPremiumNitroMonthly = stateFromStores.hasPremiumNitroMonthly;
}
if (hasPremiumNitroMonthly) {
hasPremiumNitroMonthly = !tmp8;
}
if (hasPremiumNitroMonthly) {
let hasActiveTrial;
if (stateFromStores != null) {
hasActiveTrial = stateFromStores.hasActiveTrial;
}
hasPremiumNitroMonthly = !hasActiveTrial;
}
return hasPremiumNitroMonthly;
}) : (function useShouldFetchChurnOffer() {
let premiumTypeSubscription;
const items = [SubscriptionStore];
const obj = get_initialized;
const stateFromStores = obj.useStateFromStores(items, () => premiumTypeSubscription.getPremiumTypeSubscription());
let hasPremiumNitroMonthly = null !== stateFromStores;
const tmp2 = closure_22();
if (hasPremiumNitroMonthly) {
hasPremiumNitroMonthly = stateFromStores.hasPremiumNitroMonthly;
}
if (hasPremiumNitroMonthly) {
hasPremiumNitroMonthly = !tmp2;
}
if (hasPremiumNitroMonthly) {
let hasActiveTrial;
if (stateFromStores != null) {
hasActiveTrial = stateFromStores.hasActiveTrial;
}
hasPremiumNitroMonthly = !hasActiveTrial;
}
return hasPremiumNitroMonthly;
});
ReactCompilerGating = ReactCompilerGating_mod;
ReactCompilerGating = ReactCompilerGating.isReactCompilerEnabled();
const result1 = size.fileFinishedImporting("modules/premium/PremiumSubscriptionOfferUtil.tsx");
export const useIsInPremiumOfferExperience = tmp3;
export const useHasDiscountApplied = tmp4;
export { getDiscountInfo };
export const useActiveDiscountInfo = tmp5;
export const useFetchChurnUserDiscountOffer = tmp6;
export const useShouldFetchChurnOffer = tmp7;
export const renewalInvoiceChurnDiscountInfo = function renewalInvoiceChurnDiscountInfo(arg0) {
const iter = arg0.invoiceItems[Symbol.iterator]();
while (iter !== undefined) {
let discounts = iter.next().discounts;
let found = discounts.find((type) => type.type === Server.InvoiceDiscountTypes.SUBSCRIPTION_PLAN);
let tmp2 = found;
let discount_id;
if (found != null) {
discount_id = found.discount_id;
}
if (null != discount_id) {
if (closure_21.includes(tmp2.discount_id)) {
let tmp8 = getDiscountInfo(tmp2.discount_id);
let duration;
if (tmp8 != null) {
duration = tmp8.duration;
}
let obj = { duration, percentage: null, discountId: null };
({ percentage_amount: obj.percentage, discount_id: obj.discountId } = found);
iter.return();
return obj;
}
}
continue;
}
return null;
};
export const useIsNUXEligible = function useIsNUXEligible() {
const obj = ReverseTrialUtils;
return obj.useIsInReverseTrial();
};