This commit is contained in:
janisslsm committed 2026-11-01 12:12:55 +02:00
1 parent 1781d25a15
commit 732c0ad767
33051 files changed
+2591613 -3019689

No files matched your search

+276
View File
@@ -0,0 +1,276 @@
// Metro module 12776 (f12777).
import UserStore from "../../stores/UserStore";
import { NetworkTtlCache } from "../../lib/NetworkTtlCache";
import addMinutes from "../../_bundle/addMinutes";
import differenceInMilliseconds from "../../_bundle/differenceInMilliseconds";
import addDays from "../../_bundle/addDays";
import Module589 from "../../_bundle/Module589";
import Durations from "../../utils/Durations";
import { canFetchAnyProgramReward } from "./ProgramRewardsUtils";
import { RewardProgram } from "./ProgramRewardsTypes";
import Dispatcher from "../../Dispatcher";
let c8807_5, c8807_6, c8807_7, c8807_8, $mk90393 = function() {
return function getCacheTtlState() {
const value = c8807_7.getValue();
if (value == null) {
return {
state: c8807_8.MORE_THAN_24H_BEFORE_REWARD
};
}
const date = new Date();
for (const item of value.values()) {
const date2 = new Date(item.next_reward_date);
if (isNaN(date2.getTime())) {
continue;
}
const r51 = addMinutes(date2, 10);
if (!(date >= r51)) {
if (!(date >= date2)) {
if (!(date >= addDays(date2, -1))) {
continue;
}
return {
state: c8807_8.LESS_THAN_24H_BEFORE_REWARD,
msUntilReward: differenceInMilliseconds(r51, date)
};
}
return {
state: c8807_8.LESS_THAN_24H_BEFORE_REWARD,
msUntilReward: differenceInMilliseconds(r51, date)
};
}
return {
state: c8807_8.PAST_REWARD_DATE
};
}
return {
state: c8807_8.MORE_THAN_24H_BEFORE_REWARD
};
};
};
const updateTtl = function updateTtl() {
let r13;
const r9 = $mk90393()();
const state = r9.state;
let msUntilReward = r9.msUntilReward;
if (c8807_8.LESS_THAN_24H_BEFORE_REWARD === state) {
if (msUntilReward == null) {
msUntilReward = c8807_6;
}
r13 = msUntilReward;
} else {
if (c8807_8.MORE_THAN_24H_BEFORE_REWARD !== state) {
c8807_8.PAST_REWARD_DATE;
}
r13 = c8807_6;
}
c8807_7.setTtl(r13);
};
c8807_5 = {
NOT_ELIGIBLE_FOR_ANY_PROGRAM_REWARD: "NOT_ELIGIBLE_FOR_ANY_PROGRAM_REWARD",
CACHE_SHOULD_NOT_FETCH: "CACHE_SHOULD_NOT_FETCH"
};
c8807_6 = 86400000;
c8807_7 = new NetworkTtlCache({
ttlMs: 86400000
});
c8807_8 = {
MORE_THAN_24H_BEFORE_REWARD: "MORE_THAN_24H_BEFORE_REWARD",
LESS_THAN_24H_BEFORE_REWARD: "LESS_THAN_24H_BEFORE_REWARD",
PAST_REWARD_DATE: "PAST_REWARD_DATE"
};
class ProgramRewardsStore extends Module589.PersistedStore {
static displayName = "ProgramRewardsStore";
static persistKey = "ProgramRewardsStore";
__getLocalVars = () => {
const state = this.getState();
let r28 = state.cache?.value;
if (r28 == null) {
r28 = [];
}
const r29 = {};
for (const item of r28) {
let [r36, r38] = item;
let r43 = RewardProgram[r36];
if (r43 == null) {
r43 = String(r36);
}
r29[r43] = r38;
}
const r51 = {
status: this.getStatus(),
isFetching: this.isFetching(),
isFetched: this.isFetched(),
hasCachedValue: this.hasCachedValue(),
isError: this.isError(),
isReady: this.isReady(),
shouldFetch: this.shouldFetch(),
fetchedAt: null,
rewards: null
};
let fetchedAt = state.cache?.fetchedAt;
if (fetchedAt == null) {
fetchedAt = null;
}
r51.fetchedAt = fetchedAt;
r51.rewards = Object.keys(r29).length > 0 ? r29 : null;
return r51;
};
__getLocalVarsEditConfig = () => ({
preDispatches: [{
type: "PROGRAM_REWARDS_FETCH"
}],
actionType: "PROGRAM_REWARDS_FETCH_SUCCESS",
buildPayload: ({ rewards }) => {
if (rewards == null) {
rewards = null;
}
return rewards != null && Object.keys(rewards).length !== 0 ? {
programRewards: Object.entries(rewards).map((item) => {
const [r23, r24] = item;
let reward_program = RewardProgram[r23];
if (reward_program == null) {
reward_program = Number(r23);
}
return {
...r24,
reward_program
};
})
} : {
programRewards: []
};
},
getPurgeVars: () => ({
rewards: null
})
});
initialize(a0) {
let r35;
this.waitFor(UserStore);
if (a0?.cache != null) {
c8807_7.restore({
value: new Map(a0.cache.value),
fetchedAt: a0.cache.fetchedAt
});
}
const r26 = $mk90393()();
const state = r26.state;
let msUntilReward = r26.msUntilReward;
if (c8807_8.LESS_THAN_24H_BEFORE_REWARD === state) {
if (msUntilReward == null) {
msUntilReward = c8807_6;
}
r35 = msUntilReward;
} else {
if (c8807_8.MORE_THAN_24H_BEFORE_REWARD !== state) {
c8807_8.PAST_REWARD_DATE;
}
r35 = c8807_6;
}
c8807_7.setTtl(r35);
}
getState() {
const r3 = c8807_7.serialize();
return {
cache: r3 != null ? {
value: Array.from(r3.value.entries()),
fetchedAt: r3.fetchedAt
} : null
};
}
getTotalDaysInDuration(a0) {
const rewardForProgram = this.getRewardForProgram(a0);
if (rewardForProgram == null) {
return null;
}
const total_countdown_duration_ms = rewardForProgram.total_countdown_duration_ms;
return total_countdown_duration_ms == null ? null : total_countdown_duration_ms <= 0 ? null : Math.ceil(total_countdown_duration_ms / Durations.Millis.DAY);
}
isFetching() {
return c8807_7.isLoading();
}
isFetched() {
return c8807_7.isValid();
}
hasCachedValue() {
return c8807_7.getValue() != null;
}
isReady() {
const isFetching2 = this.isFetching();
return isFetching2 ? !isFetching2 : this.hasCachedValue() || !canFetchAnyProgramReward("ProgramRewardsStore") || this.isError();
}
shouldFetch() {
return canFetchAnyProgramReward("ProgramRewardsStore.shouldFetch") ? c8807_7.shouldFetch() ? {
shouldFetch: true
} : {
shouldFetch: false,
reason: c8807_5.CACHE_SHOULD_NOT_FETCH
} : {
shouldFetch: false,
reason: c8807_5.NOT_ELIGIBLE_FOR_ANY_PROGRAM_REWARD
};
}
isError() {
return c8807_7.isError();
}
getStatus() {
return c8807_7.getStatus();
}
getRewardForProgram(a0) {
const value = c8807_7.getValue();
return value == null ? void 0 : value.get(a0);
}
forceExpire() {
c8807_7.forceExpire();
}
}
const programRewardsStore = new ProgramRewardsStore(Dispatcher, {
LOGOUT: function handleReset() {
c8807_7.clear();
},
PROGRAM_REWARDS_FETCH: function handleProgramRewardsFetch() {
c8807_7.setLoading();
},
PROGRAM_REWARDS_FETCH_SUCCESS: function handleProgramRewardsFetchSuccess({ programRewards }) {
let r31;
let c20211_0;
c20211_0 = void 0;
if (c8807_7.isLoading()) {
const map = new Map();
c20211_0 = map;
programRewards.forEach((programReward) => {
c20211_0.set(programReward.reward_program, programReward);
});
c8807_7.setValue(map);
const r24 = $mk90393()();
const state = r24.state;
let msUntilReward = r24.msUntilReward;
if (c8807_8.LESS_THAN_24H_BEFORE_REWARD === state) {
if (msUntilReward == null) {
msUntilReward = c8807_6;
}
r31 = msUntilReward;
} else {
if (c8807_8.MORE_THAN_24H_BEFORE_REWARD !== state) {
c8807_8.PAST_REWARD_DATE;
}
r31 = c8807_6;
}
c8807_7.setTtl(r31);
return void 0;
}
return false;
},
PROGRAM_REWARDS_FETCH_FAILURE: function handleProgramRewardsFetchFailure() {
if (c8807_7.isLoading()) {
c8807_7.setError();
return void 0;
}
return false;
},
CURRENT_USER_UPDATE: updateTtl,
CONNECTION_OPEN: updateTtl
});
export default programRewardsStore;
export { c8807_5 as DidNotFetchReason };
+5
View File
@@ -0,0 +1,5 @@
// Metro module 12779 (f12780).
import * as _Module12780 from "../../_bundle/Module12780";
import * as _Module12781 from "../../_bundle/Module12781";
export const RewardProgram = _Module12780.RewardProgram;
export const ProgramCurrentState = _Module12781.ProgramCurrentState;
+70
View File
@@ -0,0 +1,70 @@
// Metro module 12778 (f12779).
import UserStore from "../../stores/UserStore";
import { PremiumTypes } from "../premium/PremiumConstants";
import isPast from "../../_bundle/isPast";
import { RewardProgram } from "./ProgramRewardsTypes";
import { getPremiumRewardsOrbsExperiment, usePremiumRewardsOrbsExperiment } from "../premium/tenure_reward/experiments/PremiumRewardsOrbsExperiment";
import { getIsCrepeEnabled, useIsCrepeEnabled } from "../croissant/crepe/CrepeExperiment";
import { hasCrepeMonthlyOrbsPerk } from "./hooks/useHasXboxMonthlyOrbsPerk";
import { isPremiumExactly } from "../../utils/PremiumUtils";
let c8809_5;
export function canFetchNitroProgramReward(r7 = "ProgramRewardsUtils") {
const NITRO = RewardProgram.NITRO;
if (r7 === void 0) {
r7 = "ProgramRewardsUtils";
}
return (RewardProgram.NITRO === NITRO ? getPremiumRewardsOrbsExperiment(r7).isInTreatment : RewardProgram.XBOX === NITRO ? getIsCrepeEnabled(r7) : false) && isPremiumExactly(UserStore.getCurrentUser(), PremiumTypes.TIER_2);
}
export function canFetchXboxProgramReward(r7 = "ProgramRewardsUtils") {
const XBOX = RewardProgram.XBOX;
if (r7 === void 0) {
r7 = "ProgramRewardsUtils";
}
return (RewardProgram.NITRO === XBOX ? getPremiumRewardsOrbsExperiment(r7).isInTreatment : RewardProgram.XBOX === XBOX ? getIsCrepeEnabled(r7) : false) && hasCrepeMonthlyOrbsPerk(UserStore.getCurrentUser());
}
const r19 = {};
r19[RewardProgram.NITRO] = canFetchNitroProgramReward;
r19[RewardProgram.XBOX] = canFetchXboxProgramReward;
c8809_5 = r19;
export function isProgramRewardStale(a0) {
if (a0 == null) {
return true;
}
const next_reward_date = a0.next_reward_date;
return next_reward_date != null && next_reward_date !== "" && isPast(new Date(next_reward_date));
}
export function isEligibleForProgramReward(a0, r4 = "ProgramRewardsUtils") {
if (RewardProgram.NITRO === a0) {
return getPremiumRewardsOrbsExperiment(r4).isInTreatment;
}
if (RewardProgram.XBOX === a0) {
return getIsCrepeEnabled(r4);
}
return false;
}
export function useIsEligibleForProgramReward(a0, r7 = "ProgramRewardsUtils") {
const isInTreatment = usePremiumRewardsOrbsExperiment(r7).isInTreatment;
const isCrepeEnabled = useIsCrepeEnabled(r7);
if (RewardProgram.NITRO === a0) {
return isInTreatment;
}
if (RewardProgram.XBOX === a0) {
return isCrepeEnabled;
}
return false;
}
export function canFetchAnyProgramReward(r5 = "ProgramRewardsUtils") {
for (const item of Object.values(RewardProgram)) {
if (typeof item !== "number") {
continue;
}
if (!c8809_5[item](r5)) {
continue;
}
return true;
}
return false;
}
export function hasNecessaryPremiumSubscriptionStatus(a0) {
return isPremiumExactly(a0 == null ? UserStore.getCurrentUser() : a0, PremiumTypes.TIER_2);
}
@@ -0,0 +1,29 @@
// Metro module 12783 (f12784).
import UserStore from "../../../stores/UserStore";
import { PremiumTypes } from "../../premium/PremiumConstants";
import * as _PremiumUtils from "../../../utils/PremiumUtils";
import PremiumUtils from "../../../utils/PremiumUtils";
import { getPerkSource } from "../../premium/perks_state/PerksStateUtils";
import { Perk, PerkSource } from "../../../_bundle/Module1892";
import { useStateFromStores } from "../../../_bundle/Module589";
export function hasCrepeMonthlyOrbsPerk(a0) {
if (PremiumUtils.canUseMonthlyOrbs(a0) && !_PremiumUtils.isPremiumExactly(a0, PremiumTypes.TIER_2)) {
const perkSource = getPerkSource(a0?.perks, Perk.MONTHLY_ORBS);
return perkSource != null && perkSource.includes(PerkSource.SOURCE_THIRDPARTY_CROISSANT);
}
return false;
}
export function useHasXboxMonthlyOrbsPerk() {
const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser());
const canUseMonthlyOrbs = PremiumUtils.canUseMonthlyOrbs(stateFromStores);
let r18 = false;
if (canUseMonthlyOrbs) {
const isPremiumExactly = _PremiumUtils.isPremiumExactly(stateFromStores, PremiumTypes.TIER_2);
r18 = false;
if (!isPremiumExactly) {
const perkSource = getPerkSource(stateFromStores?.perks, Perk.MONTHLY_ORBS);
r18 = perkSource != null && perkSource.includes(PerkSource.SOURCE_THIRDPARTY_CROISSANT);
}
}
return r18;
}