decord/source/stores/billing/UserOfferStore.tsx
2026-08-05 07:35:12 +00:00

555 lines
18 KiB
TypeScript

// Module ID: 6808
// Function ID: 6809
// Name: emitChanges
// Dependencies: [6809, 7220, 1874, 6755, 3907, 1876, 589, 7221, 3901, 709, 2]
// Module 6808 (emitChanges)
import emitChanges from "emitChanges";
import createFromServer from "createFromServer";
import mergeGuildAvatar from "mergeGuildAvatar";
import addEntitlement from "addEntitlement";
import reset from "reset";
import GuildFeatures from "GuildFeatures";
import { PersistedStore } from "initialize";
let c10;
let c9;
let closure_12;
let error;
let map1;
let metroImportAll;
let unpackModuleId;
const require = arg1;
function emitChanges() {
return true;
}
function handleSubscriptionStoreUpdate() {
const tmp = null != store.getPremiumTypeSubscription();
if (!tmp) {
return tmp;
} else {
if (null != obj.userDiscountOffers[closure_9]) {
obj = {};
obj[tmp3] = obj.userDiscountOffers[tmp3];
obj.userDiscountOffers = obj;
obj.userTrialOffers = {};
} else if (null == obj.userDiscountOffers[closure_10]) {
obj.userDiscountOffers = {};
}
obj = {};
obj[tmp5] = obj.userDiscountOffers[tmp5];
obj.userDiscountOffers = obj;
}
}
function handlePaymentSourceChange() {
const currentUser = authStore.getCurrentUser();
}
function handleReferralTrialStoreUpdate() {
return false;
}
({ ANNUAL_DISCOUNT_IDS: error, DISCOUNT_OFFERS_REQUIRES_REMINDER_ROLLOUT: metroImportAll, PREMIUM_TIER_2_CHURN_1_MONTH_DISCOUNT_ID: c9, PREMIUM_TIER_2_CHURN_3_MONTH_DISCOUNT_ID: c10, SubscriptionPlanInfo: unpackModuleId, SubscriptionTrials: closure_12, TRIAL_OFFERS_REQUIRES_REMINDER_ROLLOUT: map1 } = GuildFeatures);
let obj = { userOffersLastFetchedAtDate: "r", userTrialOffers: "Path", userDiscountOffers: "TRANSPARENT", userDiscounts: 0, isFetching: "19.2.3", lastFetchSuccessful: "react-native-renderer" };
obj[1] = {};
obj[2] = {};
class UserOfferStore extends PersistedStore {
}
const prototype = UserOfferStore.prototype;
prototype["initialize"] = function initialize(userDiscountOffers) {
if (null != userDiscountOffers) {
let obj = {};
let merged = Object.assign(userDiscountOffers);
userDiscountOffers = userDiscountOffers.userDiscountOffers;
if (userDiscountOffers == null) {
userDiscountOffers = {};
}
const entries = Object.entries(userDiscountOffers);
obj.userDiscountOffers = Object.fromEntries(entries.map((arg0) => {
let tmp;
let tmp2;
[tmp, tmp2] = arg0;
const items = [tmp, ];
let obj = createFromServer;
if (tmp2 instanceof createFromServer) {
items[1] = tmp2;
return items;
} else if ("discount_id" in tmp2) {
let fromServer = obj.createFromServer(tmp2);
} else {
obj = {};
const merged = Object.assign(tmp2);
let date = null;
if (null != tmp2.appliedAt) {
const _Date = Date;
date = new Date(tmp2.appliedAt);
}
obj.appliedAt = date;
let date1 = null;
if (null != tmp2.deletedAt) {
const _Date2 = Date;
date1 = new Date(tmp2.deletedAt);
}
obj.deletedAt = date1;
let date2 = null;
if (null != tmp2.expiresAt) {
const _Date3 = Date;
date2 = new Date(tmp2.expiresAt);
}
obj.expiresAt = date2;
fromServer = new obj(obj);
}
}));
let tmp = obj;
} else {
tmp = obj;
}
obj = tmp;
this.waitFor(addEntitlement, emitChanges, reset, mergeGuildAvatar);
let items = [mergeGuildAvatar];
this.syncWith(items, emitChanges);
const items1 = [reset];
this.syncWith(items1, handleSubscriptionStoreUpdate);
const items2 = [emitChanges];
this.syncWith(items2, handleReferralTrialStoreUpdate);
};
prototype["getUserTrialOffer"] = function getUserTrialOffer(closure_9) {
if (null !== closure_9) {
return obj.userTrialOffers[closure_9];
}
};
prototype["getUserDiscountOffer"] = function getUserDiscountOffer(closure_0) {
if (null !== closure_0) {
return obj.userDiscountOffers[closure_0];
}
};
prototype["getAnyOfUserTrialOfferId"] = function getAnyOfUserTrialOfferId(arg0) {
const iter = arg0[Symbol.iterator]();
const nextResult = iter.next();
while (iter !== undefined) {
let tmp2 = nextResult;
let tmp3 = obj;
if (null != obj.userTrialOffers[nextResult]) {
let tmp4 = iter;
iter.return();
return nextResult;
}
}
return null;
};
prototype["isFetchingOffer"] = function isFetchingOffer() {
let flag = obj.isFetching;
if (flag == null) {
flag = false;
}
return flag;
};
prototype["hasFetchedOffer"] = function hasFetchedOffer() {
return null != obj.userOffersLastFetchedAtDate;
};
prototype["shouldFetchReferralOffer"] = function shouldFetchReferralOffer(tmp9Result) {
const userOffersLastFetchedAtDate = obj.userOffersLastFetchedAtDate;
let flag = obj.isFetching;
if (flag == null) {
flag = false;
}
if (null == userOffersLastFetchedAtDate) {
return !flag;
} else {
const _Date = Date;
let tmp2 = Date.now() - 600000 > userOffersLastFetchedAtDate;
let tmp3 = !flag;
if (!flag) {
if (!tmp2) {
let num2 = tmp9Result;
if (tmp9Result == null) {
num2 = 0;
}
tmp2 = num2 > userOffersLastFetchedAtDate;
}
tmp3 = tmp2;
}
return tmp3;
}
};
prototype["shouldShowTrialOfferReminder"] = function shouldShowTrialOfferReminder(trial_id) {
const hasItem = closure_13.includes(trial_id.trial_id);
let result = !hasItem;
if (hasItem) {
result = require(7221) /* apexExperiment */.isPremiumOfferReminderExperimentEnabled({ location: "user_offer_store" });
const obj = require(7221) /* apexExperiment */;
}
return result;
};
prototype["getAlmostExpiringTrialOffersForReminder"] = function getAlmostExpiringTrialOffersForReminder(items) {
let self = this;
self = this;
const dependencyMap = items;
let values = Object.values(closure_12);
const _require = values.map((id) => id.id);
const currentUser = authStore.getCurrentUser();
let obj = _require(3901);
if (obj.isPremium(currentUser)) {
if (!self.canFractionalPremiumUserUseOffer()) {
items = [];
}
return items;
}
values = Object.values(obj.userTrialOffers);
items = values.filter((trial_id) => {
let hasItem = lib.includes(trial_id.trial_id);
if (hasItem) {
hasItem = null != trial_id.expires_at;
}
if (hasItem) {
hasItem = null != trial_id.subscription_trial;
}
if (hasItem) {
hasItem = items.includes(trial_id.subscription_trial.sku_id);
}
if (hasItem) {
const _Date = Date;
const _Date2 = Date;
const parsed = Date.parse(trial_id.expires_at);
const timestamp = Date.now();
hasItem = parsed < timestamp + lib(items[8]).getOfferNoticeThreshold(trial_id);
const obj = lib(items[8]);
}
if (hasItem) {
hasItem = self.shouldShowTrialOfferReminder(trial_id);
}
return hasItem;
});
};
prototype["shouldShowDiscountOfferReminder"] = function shouldShowDiscountOfferReminder(discountId) {
const hasItem = closure_8.includes(discountId.discountId);
let result = !hasItem;
if (hasItem) {
result = require(7221) /* apexExperiment */.isPremiumOfferReminderExperimentEnabled({ location: "user_offer_store" });
const obj = require(7221) /* apexExperiment */;
}
return result;
};
prototype["getAlmostExpiringDiscountOffersForReminder"] = function getAlmostExpiringDiscountOffersForReminder(arg0) {
let self = this;
self = this;
const _require = arg0;
const currentUser = authStore.getCurrentUser();
let obj = _require(self[8]);
if (obj.isPremium(currentUser)) {
if (!self.canFractionalPremiumUserUseOffer()) {
let items = [];
}
return items;
}
const values = Object.values(obj.userDiscountOffers);
items = values.filter((expiresAt) => {
let someResult = null != expiresAt.expiresAt && null != expiresAt.discount;
if (someResult) {
const planIds = expiresAt.discount.planIds;
someResult = planIds.some((arg0) => closure_0.includes(outer1_11[arg0].skuId));
}
if (someResult) {
expiresAt = expiresAt.expiresAt;
const _Date = Date;
const time = expiresAt.getTime();
const timestamp = Date.now();
someResult = time < timestamp + callback(self[8]).getOfferNoticeThreshold(expiresAt);
const obj = callback(self[8]);
}
if (someResult) {
someResult = self.shouldShowDiscountOfferReminder(expiresAt);
}
return someResult;
});
};
prototype["getAcknowledgedOffers"] = function getAcknowledgedOffers(arg0) {
const _require = arg0;
const currentUser = authStore.getCurrentUser();
const obj = _require(3901);
if (obj.isPremium(currentUser)) {
const self = this;
if (!this.canFractionalPremiumUserUseOffer()) {
let items = [];
}
return items;
}
const values = Object.values(obj.userTrialOffers);
items = values.filter((trial_id) => {
let hasItem = closure_0.includes(trial_id.trial_id);
if (hasItem) {
hasItem = null != trial_id.expires_at;
}
return hasItem;
});
};
prototype["getUnacknowledgedDiscountOffers"] = function getUnacknowledgedDiscountOffers() {
const currentUser = authStore.getCurrentUser();
const obj = require(3901) /* getPremiumPlanItem */;
if (obj.isPremium(currentUser)) {
const self = this;
if (!this.canFractionalPremiumUserUseOffer()) {
let items = [];
}
return items;
}
let userDiscountOffers = obj.userDiscountOffers;
if (userDiscountOffers == null) {
userDiscountOffers = {};
}
const values = Object.values(userDiscountOffers);
items = values.filter((hasAcknowledged) => {
const hasAcknowledgedResult = hasAcknowledged.hasAcknowledged();
let tmp2 = !hasAcknowledgedResult;
if (!hasAcknowledgedResult) {
tmp2 = !closure_7.includes(hasAcknowledged.discountId);
}
return tmp2;
});
};
prototype["getUnacknowledgedOffers"] = function getUnacknowledgedOffers(arg0) {
const _require = arg0;
const currentUser = authStore.getCurrentUser();
const obj = _require(3901);
if (obj.isPremium(currentUser)) {
const self = this;
if (!this.canFractionalPremiumUserUseOffer()) {
let items = [];
}
return items;
}
const values = Object.values(obj.userTrialOffers);
items = values.filter((trial_id) => {
let hasItem = closure_0.includes(trial_id.trial_id);
if (hasItem) {
hasItem = null == trial_id.expires_at;
}
return hasItem;
});
};
prototype["hasAnyUnexpiredOffer"] = function hasAnyUnexpiredOffer() {
const values = Object.values(obj.userTrialOffers);
return values.some((expires_at) => {
let tmp = null == expires_at.expires_at;
if (!tmp) {
const _Date = Date;
const _Date2 = Date;
const parsed = Date.parse(expires_at.expires_at);
tmp = parsed > Date.now();
}
return tmp;
});
};
prototype["hasAnyUnexpiredDiscountOffer"] = function hasAnyUnexpiredDiscountOffer() {
const values = Object.values(obj.userDiscountOffers);
return values.some((hasExpired) => !hasExpired.hasExpired());
};
prototype["canFractionalPremiumUserUseOffer"] = function canFractionalPremiumUserUseOffer() {
let result = fractionalPremiumActive.isFractionalPremiumActive({ excludeReverseTrial: true });
if (result) {
result = null == store.getPremiumTypeSubscription();
}
return result;
};
prototype["getReferrer"] = function getReferrer(arg0) {
let tmp = null;
if (null != arg0) {
let referrer;
if (obj.userTrialOffers[arg0] != null) {
referrer = tmp3.referrer;
}
tmp = referrer;
}
return tmp;
};
prototype["getState"] = function getState() {
return obj;
};
prototype["forceReset"] = function forceReset() {
obj.userTrialOffers = {};
obj.userDiscountOffers = {};
obj.userOffersLastFetchedAtDate = undefined;
obj.isFetching = false;
};
prototype["lastFetchSuccessful"] = function lastFetchSuccessful() {
return obj.lastFetchSuccessful;
};
UserOfferStore.displayName = "UserOfferStore";
UserOfferStore.persistKey = "UserOfferStore";
let items = [
(userDiscounts) => {
userDiscounts = undefined;
if (userDiscounts != null) {
userDiscounts = userDiscounts.userDiscounts;
}
if (null != userDiscounts) {
const obj = {};
const merged = Object.assign(userDiscounts);
obj.userDiscountOffers = userDiscounts;
return obj;
}
},
(arg0) => {
if (null != arg0) {
const _Object = Object;
if (Object.hasOwn(arg0, "userAnnualOfferLastFetchedAtDate")) {
delete tmp[tmp2];
}
return arg0;
}
},
(isFetching) => {
if (null != isFetching) {
isFetching = undefined;
if (isFetching != null) {
isFetching = isFetching.isFetching;
}
let tmp2 = isFetching;
if (null == isFetching) {
const obj = {};
const merged = Object.assign(isFetching);
obj.isFetching = false;
tmp2 = obj;
}
return tmp2;
}
},
(userDiscountOffers) => {
userDiscountOffers = undefined;
if (userDiscountOffers != null) {
userDiscountOffers = userDiscountOffers.userDiscountOffers;
}
if (null != userDiscountOffers) {
let obj = {};
let merged = Object.assign(userDiscountOffers);
const _Object = Object;
const _Object2 = Object;
const entries = Object.entries(userDiscountOffers.userDiscountOffers);
obj.userDiscountOffers = Object.fromEntries(entries.map((arg0) => {
let tmp;
let tmp2;
[tmp, tmp2] = arg0;
const items = [tmp, ];
let obj = createFromServer;
if (tmp2 instanceof createFromServer) {
items[1] = tmp2;
return items;
} else if ("discount_id" in tmp2) {
let fromServer = obj.createFromServer(tmp2);
} else {
obj = {};
const merged = Object.assign(tmp2);
let date = null;
if (null != tmp2.appliedAt) {
const _Date = Date;
date = new Date(tmp2.appliedAt);
}
obj.appliedAt = date;
let date1 = null;
if (null != tmp2.deletedAt) {
const _Date2 = Date;
date1 = new Date(tmp2.deletedAt);
}
obj.deletedAt = date1;
let date2 = null;
if (null != tmp2.expiresAt) {
const _Date3 = Date;
date2 = new Date(tmp2.expiresAt);
}
obj.expiresAt = date2;
fromServer = new obj(obj);
}
}));
return obj;
}
}
];
UserOfferStore.migrations = items;
obj = {
BILLING_USER_OFFER_FETCH_START: function handleUserOfferFetchStart() {
obj.isFetching = true;
},
BILLING_USER_TRIAL_OFFER_ACKNOWLEDGED_SUCCESS: function handleUserTrialOfferAcknowledgedSuccess(userTrialOffer) {
userTrialOffer = userTrialOffer.userTrialOffer;
if (null != userTrialOffer) {
obj.userTrialOffers[userTrialOffer.trial_id] = userTrialOffer;
} else {
obj.userTrialOffers = {};
}
obj.userOffersLastFetchedAtDate = Date.now();
},
BILLING_USER_OFFER_FETCH_SUCCESS: function handleUserOfferFetchSuccess(arg0) {
let userDiscountOffer;
let userTrialOffer;
({ userTrialOffer, userDiscountOffer } = arg0);
if (tmp) {
obj.userTrialOffers = {};
obj.userDiscountOffers = {};
obj.userOffersLastFetchedAtDate = undefined;
obj.isFetching = false;
}
if (null != userTrialOffer) {
obj.userTrialOffers[userTrialOffer.trial_id] = userTrialOffer;
obj.userDiscountOffers = {};
} else if (null != userDiscountOffer) {
obj.userDiscountOffers[userDiscountOffer.discountId] = userDiscountOffer;
obj.userTrialOffers = {};
}
obj.userOffersLastFetchedAtDate = Date.now();
obj.isFetching = false;
obj.lastFetchSuccessful = true;
},
BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS: function handleUserOfferAcknowledgedSuccess(arg0) {
let userDiscount;
let userDiscountOffer;
let userTrialOffer;
({ userTrialOffer, userDiscount, userDiscountOffer } = arg0);
if (null != userTrialOffer) {
obj.userTrialOffers[userTrialOffer.trial_id] = userTrialOffer;
} else {
obj.userTrialOffers = {};
}
if (null != userDiscount) {
obj.userDiscountOffers[userDiscount.discountId] = userDiscount;
} else if (null != userDiscountOffer) {
obj.userDiscountOffers[userDiscountOffer.discountId] = userDiscountOffer;
} else {
obj.userDiscountOffers = {};
}
obj.userOffersLastFetchedAtDate = Date.now();
},
BILLING_USER_OFFER_FETCH_FAIL: function handleUserOfferFetchFail() {
obj.userTrialOffers = {};
obj.userDiscountOffers = {};
obj.userOffersLastFetchedAtDate = undefined;
obj.isFetching = false;
obj.userOffersLastFetchedAtDate = Date.now();
obj.isFetching = false;
obj.lastFetchSuccessful = false;
},
BILLING_USER_OFFER_REDEEMED: function handleUserOfferRedeemed(offerId) {
offerId = offerId.offerId;
const keys = Object.keys(obj.userDiscountOffers);
if (null != keys.find((arg0) => outer1_15.userDiscountOffers[arg0].id === offerId)) {
const userDiscountOffers = obj.userDiscountOffers;
delete tmp3[tmp4];
}
const keys1 = Object.keys(obj.userTrialOffers);
if (null != keys1.find((arg0) => outer1_15.userTrialOffers[arg0].id === offerId)) {
const userTrialOffers = obj.userTrialOffers;
delete tmp[tmp2];
}
return true;
},
BILLING_PAYMENT_SOURCE_CREATE_SUCCESS: handlePaymentSourceChange,
BILLING_PAYMENT_SOURCE_UPDATE_SUCCESS: handlePaymentSourceChange,
BILLING_PAYMENT_SOURCE_REMOVE_SUCCESS: handlePaymentSourceChange,
LOGOUT: function handleReset() {
obj.userTrialOffers = {};
obj.userDiscountOffers = {};
obj.userOffersLastFetchedAtDate = undefined;
obj.isFetching = false;
}
};
const userOfferStore = new UserOfferStore(require("dispatcher"), obj);
let result = require("mergeGuildAvatar").fileFinishedImporting("stores/billing/UserOfferStore.tsx");
export default userOfferStore;