// Module ID: 14859 // Function ID: 14860 // Name: useQuestForPlacement // Dependencies: [19, 7286, 7289, 1091, 10887, 10909, 10888, 504, 14860, 7287, 7285, 2] // Exports: default, useAdDecisionForPlacement, useAdRefreshLoop // Module 14859 (useQuestForPlacement) import DurationsDefault from "Durations" /* 1091 */; import QuestsEligibility from "QuestsEligibility" /* 10887 */; import DiscordAppStateDefault from "DiscordAppState" /* 10909 */; import noop from "module_19" /* 19 */; import AdDeliveryStore from "AdDeliveryStore" /* 7286 */; import QuestStore from "QuestStore" /* 7289 */; import size from "module_2" /* 2 */; const require = globalThis.__r; function maybeRefreshAd(fetchedAt, MOBILE_HOME_DOCK_AREA, arg2) { let isEligibleForQuests = QuestsEligibility.getIsEligibleForQuests(); if (isEligibleForQuests) { let tmp5 = null != fetchedAt; if (tmp5) { const _Date = Date; const sum = fetchedAt.fetchedAt + fetchedAt.ttlMillis; tmp5 = sum >= Date.now(); } isEligibleForQuests = !tmp5; } if (isEligibleForQuests) { if ("active" === obj2.getState()) { if (!AdDeliveryStore.isFetchingAdToDeliverByPlacement(MOBILE_HOME_DOCK_AREA)) { if (obj4.canRefreshAd(MOBILE_HOME_DOCK_AREA)) { const currentQuests = tmp(10888).fetchCurrentQuests(); const tmpResult = tmp(10888); const questToDeliver = tmp(10888).fetchQuestToDeliver(MOBILE_HOME_DOCK_AREA, arg2); const tmpResult3 = tmp(10888); } } obj4 = AdDeliveryStore; } else if (null != fetchedAt) { tmp(10888).clearQuestAdDecision(MOBILE_HOME_DOCK_AREA, fetchedAt.ttlMillis); const tmpResult4 = tmp(10888); } obj2 = DiscordAppStateDefault; } } ({ 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"); export default function useFetchQuestForAdPlacement(arg0) { _require = arg0; importDefault = closure_4(null); closure_129_0 = arg0; const items = [AdDeliveryStore]; const items1 = [arg0]; stateFromStores = require("initialize").useStateFromStores(items, () => { const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement; value = deliveryAdDecisionByPlacement.get(closure_0); if (value == null) { value = null; } return value; }, items1); const obj = require("initialize"); const enableFastAdRecheck = require("AdRecheckIntervalExperiment").useConfig({ location: "useQuestForAdPlacement" }).enableFastAdRecheck; const items2 = [stateFromStores, arg0, enableFastAdRecheck]; enableFastAdRecheck(() => { if (null != ref.current) { let _clearInterval = clearInterval; clearInterval(tmp.current); } maybeRefreshAd(stateFromStores, current, "questBar-open"); ref.current = setInterval(() => { const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement; value = deliveryAdDecisionByPlacement.get(current); if (value == null) { value = null; } maybeRefreshAd(value, current, "questBar-interval"); }, enableFastAdRecheck ? closure_1_8 : closure_1_7); current = tmp.current; return () => { if (null != current) { const _clearInterval = clearInterval; clearInterval(tmp); } }; }, items2); closure_130_0 = arg0; const obj2 = require("AdRecheckIntervalExperiment"); const items3 = [AdDeliveryStore]; const items4 = [arg0]; const stateFromStores1 = require("initialize").useStateFromStores(items3, () => { const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement; value = deliveryAdDecisionByPlacement.get(closure_0); if (value == null) { value = null; } return value; }, items4); const obj3 = require("initialize"); 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, () => { let tmp2 = null; if (null != closure_0) { const quests = QuestStore.quests; value = quests.get(tmp); if (value == null) { value = null; } tmp2 = value; } return tmp2; }); let tmp8 = null; if (null != stateFromStores2) { tmp8 = null; if (!tmpResult2.isQuestExpired(stateFromStores2)) { tmp8 = stateFromStores2; } tmpResult2 = tmp(tmp2[10]); } return tmp8; }; export const useAdDecisionForPlacement = function useAdDecisionForPlacement(MOBILE_HOME_DOCK_AREA) { _require = MOBILE_HOME_DOCK_AREA; const items = [AdDeliveryStore]; const items1 = [MOBILE_HOME_DOCK_AREA]; return require("initialize").useStateFromStores(items, () => { const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement; value = deliveryAdDecisionByPlacement.get(closure_0); 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]; const items1 = [MOBILE_HOME_DOCK_AREA]; stateFromStores = require("initialize").useStateFromStores(items, () => { const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement; value = deliveryAdDecisionByPlacement.get(closure_0); if (value == null) { value = null; } return value; }, items1); const obj = require("initialize"); const enableFastAdRecheck = require("AdRecheckIntervalExperiment").useConfig({ location: "useQuestForAdPlacement" }).enableFastAdRecheck; const items2 = [stateFromStores, MOBILE_HOME_DOCK_AREA, enableFastAdRecheck]; enableFastAdRecheck(() => { if (null != ref.current) { let _clearInterval = clearInterval; clearInterval(tmp.current); } maybeRefreshAd(stateFromStores, current, "questBar-open"); ref.current = setInterval(() => { const deliveryAdDecisionByPlacement = AdDeliveryStore.deliveryAdDecisionByPlacement; value = deliveryAdDecisionByPlacement.get(current); if (value == null) { value = null; } maybeRefreshAd(value, current, "questBar-interval"); }, enableFastAdRecheck ? closure_1_8 : closure_1_7); current = tmp.current; return () => { if (null != current) { const _clearInterval = clearInterval; clearInterval(tmp); } }; }, items2); };