decord/source/modules/quests/useQuestForPlacement.tsx

186 lines
6.7 KiB
TypeScript
Raw Normal View History

// Module ID: 15197
// Function ID: 15198
// Name: useQuestForPlacement
// Dependencies: [19, 7802, 7805, 1090, 11618, 11434, 11410, 504, 15198, 7803, 7801, 2]
2026-08-07 06:50:47 +00:00
// Exports: default, useAdDecisionForPlacement, useAdRefreshLoop
2026-07-20 16:05:17 +00:00
// Module 15197 (useQuestForPlacement)
import DurationsDefault from "Durations" /* 1090 */;
import DiscordAppStateDefault from "DiscordAppState" /* 11434 */;
import QuestsEligibility from "QuestsEligibility" /* 11618 */;
import noop from "module_19" /* 19 */;
import AdDeliveryStore from "AdDeliveryStore" /* 7802 */;
import QuestStore from "QuestStore" /* 7805 */;
import size from "module_2" /* 2 */;
2026-07-23 10:11:24 +00:00
const require = globalThis.__r;
function maybeRefreshAd(fetchedAt, MOBILE_HOME_DOCK_AREA, arg2) {
let isEligibleForQuests = QuestsEligibility.getIsEligibleForQuests();
2026-07-20 16:05:17 +00:00
if (isEligibleForQuests) {
2026-07-29 08:29:29 +00:00
let tmp5 = null != fetchedAt;
if (tmp5) {
2026-07-20 16:05:17 +00:00
const _Date = Date;
const sum = fetchedAt.fetchedAt + fetchedAt.ttlMillis;
2026-07-29 08:29:29 +00:00
tmp5 = sum >= Date.now();
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
isEligibleForQuests = !tmp5;
2026-07-20 16:05:17 +00:00
}
if (isEligibleForQuests) {
if ("active" === obj2.getState()) {
if (!AdDeliveryStore.isFetchingAdToDeliverByPlacement(MOBILE_HOME_DOCK_AREA)) {
if (obj4.canRefreshAd(MOBILE_HOME_DOCK_AREA)) {
const currentQuests = tmp(11410).fetchCurrentQuests();
const tmpResult = tmp(11410);
const questToDeliver = tmp(11410).fetchQuestToDeliver(MOBILE_HOME_DOCK_AREA, arg2);
const tmpResult3 = tmp(11410);
2026-07-20 16:05:17 +00:00
}
}
obj4 = AdDeliveryStore;
2026-07-20 16:05:17 +00:00
} else if (null != fetchedAt) {
tmp(11410).clearQuestAdDecision(MOBILE_HOME_DOCK_AREA, fetchedAt.ttlMillis);
const tmpResult4 = tmp(11410);
2026-07-20 16:05:17 +00:00
}
obj2 = DiscordAppStateDefault;
2026-07-20 16:05:17 +00:00
}
}
({ useEffect: c3, useRef: closure_4 } = noop);
let closure_7 = 10 * DurationsDefault.Millis.MINUTE;
let closure_8 = 30 * DurationsDefault.Millis.SECOND;
const result = size.fileFinishedImporting("modules/quests/useQuestForPlacement.tsx");
2026-07-20 16:05:17 +00:00
2026-08-07 06:50:47 +00:00
export default function useFetchQuestForAdPlacement(arg0) {
_require = arg0;
importDefault = closure_4(null);
closure_129_0 = arg0;
const items = [AdDeliveryStore];
2026-08-07 06:50:47 +00:00
const items1 = [arg0];
stateFromStores = require("initialize").useStateFromStores(items, () => {
const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement;
value = deliveryAdDecisionByPlacement.get(closure_0);
2026-07-29 08:29:29 +00:00
if (value == null) {
value = null;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
return value;
2026-08-07 06:50:47 +00:00
}, items1);
const obj = require("initialize");
const enableFastAdRecheck = require("AdRecheckIntervalExperiment").useConfig({ location: "useQuestForAdPlacement" }).enableFastAdRecheck;
2026-08-07 06:50:47 +00:00
const items2 = [stateFromStores, arg0, enableFastAdRecheck];
enableFastAdRecheck(() => {
if (null != ref.current) {
let _clearInterval = clearInterval;
clearInterval(tmp.current);
}
maybeRefreshAd(stateFromStores, current, "questBar-open");
2026-08-07 06:50:47 +00:00
ref.current = setInterval(() => {
const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement;
value = deliveryAdDecisionByPlacement.get(current);
2026-08-07 06:50:47 +00:00
if (value == null) {
value = null;
}
maybeRefreshAd(value, current, "questBar-interval");
2026-08-27 16:17:25 +00:00
}, enableFastAdRecheck ? closure_1_8 : closure_1_7);
2026-08-07 06:50:47 +00:00
current = tmp.current;
return () => {
if (null != current) {
const _clearInterval = clearInterval;
clearInterval(tmp);
}
};
}, items2);
closure_130_0 = arg0;
const obj2 = require("AdRecheckIntervalExperiment");
const items3 = [AdDeliveryStore];
2026-08-07 06:50:47 +00:00
const items4 = [arg0];
const stateFromStores1 = require("initialize").useStateFromStores(items3, () => {
const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement;
value = deliveryAdDecisionByPlacement.get(closure_0);
2026-08-07 06:50:47 +00:00
if (value == null) {
value = null;
}
return value;
}, items4);
const obj3 = require("initialize");
2026-08-13 17:34:28 +00:00
let creative;
if (stateFromStores1 != null) {
creative = stateFromStores1.creative;
}
const deliveredQuestId = require("AdDecisionUtils").getDeliveredQuestId(creative);
const obj4 = require("AdDecisionUtils");
const items5 = [QuestStore];
const stateFromStores2 = require("initialize").useStateFromStores(items5, () => {
2026-08-13 17:34:28 +00:00
let tmp2 = null;
if (null != closure_0) {
const quests = QuestStore.quests;
value = quests.get(tmp);
2026-07-29 08:29:29 +00:00
if (value == null) {
value = null;
2026-07-20 16:05:17 +00:00
}
2026-08-13 17:34:28 +00:00
tmp2 = value;
2026-07-20 16:05:17 +00:00
}
2026-08-13 17:34:28 +00:00
return tmp2;
2026-07-20 16:05:17 +00:00
});
2026-08-27 16:17:25 +00:00
let tmp8 = null;
2026-08-13 17:34:28 +00:00
if (null != stateFromStores2) {
2026-08-27 16:17:25 +00:00
tmp8 = null;
if (!tmpResult2.isQuestExpired(stateFromStores2)) {
2026-08-27 16:17:25 +00:00
tmp8 = stateFromStores2;
2026-08-07 06:50:47 +00:00
}
tmpResult2 = tmp(tmp2[10]);
2026-08-07 06:50:47 +00:00
}
2026-08-27 16:17:25 +00:00
return tmp8;
2026-08-07 06:50:47 +00:00
};
export const useAdDecisionForPlacement = function useAdDecisionForPlacement(MOBILE_HOME_DOCK_AREA) {
_require = MOBILE_HOME_DOCK_AREA;
const items = [AdDeliveryStore];
2026-08-07 06:50:47 +00:00
const items1 = [MOBILE_HOME_DOCK_AREA];
return require("initialize").useStateFromStores(items, () => {
const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement;
value = deliveryAdDecisionByPlacement.get(closure_0);
2026-08-07 06:50:47 +00:00
if (value == null) {
value = null;
}
return value;
}, items1);
};
export const useAdRefreshLoop = function useAdRefreshLoop(MOBILE_HOME_DOCK_AREA) {
_require = MOBILE_HOME_DOCK_AREA;
importDefault = closure_4(null);
closure_129_0 = MOBILE_HOME_DOCK_AREA;
const items = [AdDeliveryStore];
2026-08-07 06:50:47 +00:00
const items1 = [MOBILE_HOME_DOCK_AREA];
stateFromStores = require("initialize").useStateFromStores(items, () => {
const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement;
value = deliveryAdDecisionByPlacement.get(closure_0);
2026-08-07 06:50:47 +00:00
if (value == null) {
value = null;
}
return value;
}, items1);
const obj = require("initialize");
const enableFastAdRecheck = require("AdRecheckIntervalExperiment").useConfig({ location: "useQuestForAdPlacement" }).enableFastAdRecheck;
2026-08-07 06:50:47 +00:00
const items2 = [stateFromStores, MOBILE_HOME_DOCK_AREA, enableFastAdRecheck];
2026-07-20 16:05:17 +00:00
enableFastAdRecheck(() => {
if (null != ref.current) {
2026-07-23 10:11:24 +00:00
let _clearInterval = clearInterval;
2026-07-29 08:29:29 +00:00
clearInterval(tmp.current);
2026-07-20 16:05:17 +00:00
}
maybeRefreshAd(stateFromStores, current, "questBar-open");
2026-07-20 16:05:17 +00:00
ref.current = setInterval(() => {
const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement;
value = deliveryAdDecisionByPlacement.get(current);
2026-07-29 08:29:29 +00:00
if (value == null) {
value = null;
2026-07-20 16:05:17 +00:00
}
maybeRefreshAd(value, current, "questBar-interval");
2026-08-27 16:17:25 +00:00
}, enableFastAdRecheck ? closure_1_8 : closure_1_7);
2026-07-29 08:29:29 +00:00
current = tmp.current;
2026-07-20 16:05:17 +00:00
return () => {
if (null != current) {
const _clearInterval = clearInterval;
2026-07-29 08:29:29 +00:00
clearInterval(tmp);
2026-07-20 16:05:17 +00:00
}
};
}, items2);
};