Files
discord-decomp/modules/premium/ReferralTrialStore.tsx
T
2026-11-01 12:12:55 +02:00

242 lines
7.2 KiB
TypeScript

// Metro module 6212 (f6213).
import UserStore from "../../stores/UserStore";
import { NOOP_NULL } from "../../Constants";
import { fetchReferralsRemaining, resolveReferralTrialOffer } from "./ReferralTrialActionCreators";
import Dispatcher from "../../Dispatcher";
import { MessageTypes } from "../../_bundle/Module686";
import Module589 from "../../_bundle/Module589";
import { HermesBuiltin } from "../../_hermes/prelude";
function $mk78008($env) {
return () => {
const r1 = $env.$parent;
return (0, r1[0])(r1[2][2]).resolveReferralTrialOffer($env[0]).catch(r1[4]);
};
}
let c3940_22;
let env3940 = {};
const emitChanges = function emitChanges() {
return true;
};
const handleLoadMessages = function handleLoadMessages(a0) {
a0.messages.forEach((message) => {
const r13 = message.type === MessageTypes.PREMIUM_REFERRAL ? message.content : null;
let env25744;
const r14 = env25744 = {
$parent: env3940
};
env25744[0] = r13;
const r2 = r13 == null;
let r15 = false;
if (!r2) {
const r18 = env3940[10].has(r13) || env3940[9].has(r13);
r15 = void 0;
if (!r18) {
env3940[9].add(r13);
Dispatcher.wait($mk78008(r14));
r15 = void 0;
}
}
return r15;
});
};
env3940[5] = null;
env3940[6] = new Set();
env3940[7] = new Map();
env3940[8] = false;
env3940[9] = new Set();
env3940[10] = new Set();
env3940[11] = new Map();
env3940[12] = 0;
env3940[13] = null;
env3940[14] = [];
env3940[15] = false;
env3940[16] = 0;
env3940[17] = false;
env3940[18] = false;
env3940[19] = null;
env3940[20] = null;
class ReferralTrialStore extends Module589.Store {
static displayName = "ReferralTrialStore";
constructor() {
super(...arguments);
}
initialize() {
this.waitFor(UserStore);
this.syncWith([UserStore], emitChanges);
}
checkAndFetchReferralsRemaining() {
let r1 = env3940[5] == null && !env3940[8] && env3940[12] < 6;
if (r1) {
const r6 = env3940[13];
r1 = r6 == null || r6 < Date.now();
}
if (r1) {
fetchReferralsRemaining();
}
}
getReferralsRemaining(r1 = {}) {
let bypassFetch = r1.bypassFetch;
if (bypassFetch === void 0) {
bypassFetch = false;
}
if (!bypassFetch) {
this.checkAndFetchReferralsRemaining();
}
return env3940[5];
}
getSentUserIds() {
this.checkAndFetchReferralsRemaining();
return Array.from(env3940[6].values());
}
isFetchingReferralsRemaining() {
return env3940[8];
}
getRelevantUserTrialOffer(a0) {
return env3940[11].get(a0);
}
isResolving(a0) {
return env3940[9].has(a0);
}
getEligibleUsers() {
return env3940[14];
}
getFetchingEligibleUsers() {
return env3940[15];
}
getNextIndexOfEligibleUsers() {
return env3940[16];
}
getIsEligibleToSendReferrals() {
return env3940[17];
}
getHasEligibleFriends() {
return env3940[18];
}
getRefreshAt() {
return env3940[19];
}
getAllRelevantReferralTrialOffers() {
return Array.from(env3940[11].values());
}
getRecipientStatus() {
return env3940[7];
}
getReminderStateId() {
return env3940[20];
}
}
c3940_22 = ReferralTrialStore;
const r106 = new ReferralTrialStore(Dispatcher, {
BILLING_REFERRAL_TRIAL_OFFER_UPDATE: function handleReferralTrialOfferUpdate({ userTrialOfferId }) {
if (!env3940[8]) {
fetchReferralsRemaining();
}
if (!env3940[9].has(userTrialOfferId)) {
env3940[9].add(userTrialOfferId);
Dispatcher.wait(() => resolveReferralTrialOffer(userTrialOfferId).catch(NOOP_NULL));
}
},
BILLING_REFERRALS_REMAINING_FETCH_START: function handleReferralsRemainingFetchStart(a0) {
if (a0 == null) {
HermesBuiltin.throwTypeError("Cannot destructure 'undefined' or 'null'.");
throw new Error("unreachable");
}
env3940[19] = null;
env3940[8] = true;
},
BILLING_REFERRALS_REMAINING_FETCH_SUCCESS: function handleReferralsRemainingFetchSuccess({ referrals_remaining, sent_user_ids, refresh_at, recipient_status, has_eligible_friends, reminder_state_id }) {
env3940[17] = true;
env3940[18] = has_eligible_friends;
env3940[8] = false;
env3940[5] = referrals_remaining;
env3940[6] = new Set(sent_user_ids);
env3940[19] = refresh_at;
env3940[7] = recipient_status;
env3940[20] = reminder_state_id;
env3940[12] = 0;
env3940[13] = null;
},
BILLING_REFERRALS_REMAINING_FETCH_FAIL: function handleReferralsRemainingFetchFail(a0) {
if (a0 == null) {
HermesBuiltin.throwTypeError("Cannot destructure 'undefined' or 'null'.");
throw new Error("unreachable");
}
env3940[17] = false;
env3940[18] = false;
env3940[19] = null;
env3940[8] = false;
const r1 = env3940[12] + 1;
env3940[12] = r1;
const r19 = r1 <= 3 ? 1000 * Math.pow(2, env3940[12]) : 8000 * Math.pow(4, env3940[12] - 3);
env3940[13] = Date.now() + Math.min(300000, r19);
},
BILLING_CREATE_REFERRAL_SUCCESS: function handleCreateReferralSuccess({ userTrialOffer }) {
fetchReferralsRemaining();
env3940[11].set(userTrialOffer.id, userTrialOffer);
env3940[6].add(userTrialOffer.user_id);
},
CREATE_REFERRALS_SUCCESS: function handleCreateReferralsSuccess({ userTrialOffers }) {
fetchReferralsRemaining();
for (const item of userTrialOffers) {
env3940[11].set(item.id, item);
env3940[6].add(item.user_id);
}
},
BILLING_REFERRAL_RESOLVE_SUCCESS: function handleReferralTrialResolveSuccess({ userTrialOffer }) {
if (userTrialOffer != null) {
env3940[9].delete(userTrialOffer.id);
env3940[10].add(userTrialOffer.id);
env3940[11].set(userTrialOffer.id, userTrialOffer);
}
},
BILLING_REFERRAL_RESOLVE_FAIL: function handleReferralTrialResolveFail({ userTrialOfferId: userTrialOfferId2 }) {
env3940[9].delete(userTrialOfferId2);
env3940[10].add(userTrialOfferId2);
},
REFERRALS_FETCH_ELIGIBLE_USER_START: function handleReferralsFetchEligibleUsersStart() {
env3940[15] = true;
},
REFERRALS_FETCH_ELIGIBLE_USER_SUCCESS: function handleReferralsFetchEligibleUsersSuccess({ users, nextIndex }) {
env3940[15] = false;
env3940[14] = users;
env3940[16] = nextIndex;
},
REFERRALS_FETCH_ELIGIBLE_USER_FAIL: function handleReferralsFetchEligibleUsersFail() {
env3940[15] = false;
},
LOAD_MESSAGES_SUCCESS: handleLoadMessages,
MESSAGE_CREATE: function handleMessage({ message }) {
let env15585;
const r9 = env15585 = {
$parent: env3940
};
env15585[0] = void 0;
const r13 = message.type === MessageTypes.PREMIUM_REFERRAL ? message.content : null;
env15585[0] = r13;
if (r13 != null && !(env3940[10].has(r13) || env3940[9].has(r13))) {
env3940[9].add(r13);
Dispatcher.wait($mk78008(r9));
}
},
LOAD_MESSAGES_AROUND_SUCCESS: handleLoadMessages,
LOGOUT: function handleReset() {
env3940[5] = null;
env3940[6] = new Set();
env3940[8] = false;
env3940[9] = new Set();
env3940[10] = new Set();
env3940[11] = new Map();
env3940[12] = 0;
env3940[13] = null;
env3940[14] = [];
env3940[15] = false;
env3940[16] = 0;
env3940[17] = false;
env3940[18] = false;
env3940[19] = null;
env3940[7] = new Map();
env3940[20] = null;
}
});
export default r106;