// Metro module 14142 (f14143). import { useEffect, useRef } from "react"; import QuestStore from "./QuestStore"; import Durations from "../../utils/Durations"; import { getIsEligibleForQuests } from "./lib/QuestsEligibility"; import DiscordAppState_native from "../app_state/DiscordAppState.native"; import { fetchCurrentQuests, fetchQuestToDeliver, clearQuestAdDecision } from "./QuestActionCreators"; import NewAdRequestBehaviorExperiment from "./experiments/NewAdRequestBehaviorExperiment"; import { useStateFromStores } from "../../_bundle/Module589"; import AdRecheckIntervalExperiment from "./experiments/AdRecheckIntervalExperiment"; import { isQuestExpired } from "./utils/QuestDataUtils"; let c9897_6, c9897_7; const maybeRefreshAd = function maybeRefreshAd(stateFromStores, a1, a2) { if (getIsEligibleForQuests() && !(stateFromStores != null && stateFromStores.fetchedAt + stateFromStores.ttlMillis >= Date.now())) { if (DiscordAppState_native.getState() === "active") { if (!QuestStore.isFetchingQuestToDeliverByPlacement(a1) && QuestStore.canRefreshAd(a1) && NewAdRequestBehaviorExperiment.getConfig({ location: "maybeRefreshAd" }).enableNewRequestBehavior) { fetchCurrentQuests(); fetchQuestToDeliver(a1, a2); } } else if (stateFromStores != null) { clearQuestAdDecision(a1, stateFromStores.ttlMillis); } } }; c9897_6 = 10 * Durations.Millis.MINUTE; c9897_7 = 30 * Durations.Millis.SECOND; export default function useQuestForAdPlacement(a0) { let enableFastAdRecheck; const ref = useRef(null); const stateFromStores = useStateFromStores([QuestStore], () => { let r7 = QuestStore.questAdDecisionByPlacement.get(a0); if (r7 == null) { r7 = null; } return r7; }); const stateFromStores2 = useStateFromStores([QuestStore], () => { const r7 = stateFromStores?.questId != null; let r8 = null; if (r7) { let r12 = QuestStore.quests.get(stateFromStores.questId); if (r12 == null) { r12 = null; } r8 = r12; } return r8; }); enableFastAdRecheck = AdRecheckIntervalExperiment.useConfig({ location: "useQuestForAdPlacement" }).enableFastAdRecheck; useEffect(() => { if (ref.current != null) { clearInterval(ref.current); } const r1 = enableFastAdRecheck ? c9897_7 : c9897_6; let current; maybeRefreshAd(stateFromStores, a0, "questBar-open"); ref.current = setInterval(() => { let r9 = QuestStore.questAdDecisionByPlacement.get(a0); if (r9 == null) { r9 = null; } maybeRefreshAd(r9, a0, "questBar-interval"); }, r1); current = ref.current; return () => { if (current != null) { clearInterval(current); } }; }, [stateFromStores, a0, enableFastAdRecheck]); return stateFromStores2 == null ? null : isQuestExpired(stateFromStores2) ? null : stateFromStores2; };