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

116 lines
3.4 KiB
TypeScript

// Metro module 14112 (f14113).
import _slicedToArray from "../../_bundle/_slicedToArray";
import QuestStore from "./QuestStore";
import { AdCreativeType } from "../../_bundle/Module6013";
import { isQuestExpired } from "./utils/QuestDataUtils";
import Module589 from "../../_bundle/Module589";
import Dispatcher from "../../Dispatcher";
let c9876_4, syncWithQuestStore;
const getOrCreateSet = function getOrCreateSet(adCreativeType) {
let r9 = c9876_4.get(adCreativeType);
if (r9 == null) {
const set = new Set();
c9876_4.set(adCreativeType, set);
r9 = set;
}
return r9;
};
syncWithQuestStore = function syncWithQuestStore() {
const orCreateSet = getOrCreateSet(AdCreativeType.QUEST);
let r41 = false;
for (const quest of QuestStore.quests) {
const [r48, r50] = quest;
let r52 = orCreateSet.has(r48) || isQuestExpired(r50);
if (!r52) {
const userStatus = r50.userStatus;
r52 = userStatus == null || userStatus.enrolledAt == null && userStatus.completedAt == null && userStatus.claimedAt == null && userStatus.dismissedQuestContent === 0;
}
if (!r52) {
orCreateSet.add(r48);
r41 = true;
}
}
if (QuestStore.lastFetchedCurrentQuests !== 0 && QuestStore.quests.size > 0) {
for (const item of orCreateSet) {
const r85 = QuestStore.quests.get(item);
if (r85 == null || isQuestExpired(r85)) {
orCreateSet.delete(item);
r41 = true;
}
}
}
const orCreateSet2 = getOrCreateSet(AdCreativeType.QUEST_HOME_HERO);
if (QuestStore.getLastFetchedQuestHomeHero() != null && orCreateSet2.size > 0) {
const questHomeHero = QuestStore.getQuestHomeHero();
for (const item2 of orCreateSet2) {
if (!(questHomeHero != null && item2 === questHomeHero.id)) {
orCreateSet2.delete(item2);
r41 = true;
}
}
}
return r41;
};
c9876_4 = new Map();
class AdContentSeenStore extends Module589.PersistedStore {
static displayName = "AdContentSeenStore";
static persistKey = "AdContentSeenStore";
initialize(a0) {
this.waitFor(QuestStore);
c9876_4 = new Map();
if (a0 != null) {
for (const item of Object.entries(a0.seenContentIds)) {
const [r42, r12] = item;
c9876_4.set(Number(r42), new Set(r12));
}
}
this.syncWith([QuestStore], syncWithQuestStore);
}
getState() {
const seenContentIds = {};
for (const item of c9876_4) {
const r27 = _slicedToArray(item, 2);
seenContentIds[r27[0]] = Array.from(r27[1]);
}
return {
seenContentIds
};
}
hasSeen(a0, a1) {
const r5 = c9876_4.get(a0);
let r7 = r5 == null ? void 0 : r5.has(a1);
if (r7 == null) {
r7 = false;
}
return r7;
}
}
const adContentSeenStore = new AdContentSeenStore(Dispatcher, {
AD_CONTENT_MARK_SEEN: function handleMarkSeen(a0) {
const orCreateSet = getOrCreateSet(a0.adCreativeType);
let r22 = false;
for (const contentId of a0.contentIds) {
if (!orCreateSet.has(contentId)) {
orCreateSet.add(contentId);
r22 = true;
}
}
return r22;
},
AD_CONTENT_MARK_UNSEEN: function handleMarkUnseen(a0) {
const r21 = c9876_4.get(a0.adCreativeType);
if (r21 == null) {
return false;
}
let r23 = false;
for (const contentId of a0.contentIds) {
if (r21.has(contentId)) {
r21.delete(contentId);
r23 = true;
}
}
return r23;
}
});
export default adContentSeenStore;