55 lines
2.4 KiB
TypeScript
55 lines
2.4 KiB
TypeScript
// Metro module 10496 (f10497).
|
|
import { useMemo, useContext, useCallback } from "react";
|
|
import QuestStore from "../../QuestStore";
|
|
import { AdCreativeType } from "../../../../_bundle/Module6013";
|
|
import { useStateFromStores } from "../../../../_bundle/Module589";
|
|
import { getQuestStatus } from "./AnalyticsTypes";
|
|
import usePrevious from "../../../../hooks/usePrevious";
|
|
import { QuestImpressionContext } from "./ContentImpressionTracker";
|
|
export function useAdContentImpressionTrackerProps(a0) {
|
|
let QUEST;
|
|
const r11 = "questOrQuests" in a0 ? a0.questOrQuests : void 0;
|
|
const r10 = "adContentId" in a0 ? a0.adContentId : void 0;
|
|
const questOrQuests = r11;
|
|
const adContentId = r10;
|
|
const memo = useMemo(() => adContentId != null ? [adContentId] : questOrQuests != null ? Array.isArray(questOrQuests) ? questOrQuests.map((questOrQuest) => questOrQuest.id) : [questOrQuests.id] : [], [questOrQuests, adContentId]);
|
|
QUEST = "questOrQuests" in a0 ? AdCreativeType.QUEST : a0.adCreativeType;
|
|
return useMemo(() => {
|
|
const questContent = a0.questContent;
|
|
const key = `${[...memo].sort().join("_")}_${questContent}`;
|
|
AdCreativeType.QUEST;
|
|
return {
|
|
adContentIds: memo,
|
|
adCreativeType: QUEST,
|
|
key
|
|
};
|
|
}, [memo, a0.questContent, QUEST]);
|
|
}
|
|
export function useQuestStatusChanged({ adContentIds, adCreativeType }) {
|
|
const stateFromStores = useStateFromStores([QuestStore], () => adCreativeType === AdCreativeType.QUEST ? adContentIds.length === 1 ? QuestStore.getQuest(adContentIds[0]) : null : null, [adContentIds, adCreativeType]);
|
|
const memo2 = useMemo(() => stateFromStores != null ? getQuestStatus(stateFromStores) : null, [stateFromStores]);
|
|
return memo2 !== usePrevious(memo2);
|
|
}
|
|
export function useQuestImpressionRef() {
|
|
return useContext(QuestImpressionContext);
|
|
}
|
|
export function useQuestImpression() {
|
|
return useContext(QuestImpressionContext)?.current;
|
|
}
|
|
export function useQuestImpressionId() {
|
|
const current = useContext(QuestImpressionContext)?.current;
|
|
return current == null ? void 0 : current.getId();
|
|
}
|
|
export function useGetQuestImpressionId() {
|
|
const context = useContext(QuestImpressionContext);
|
|
return useCallback(() => {
|
|
const r2 = context == null;
|
|
let r6 = void 0;
|
|
if (!r2) {
|
|
const current = context.current;
|
|
r6 = current == null ? void 0 : current.getId();
|
|
}
|
|
return r6;
|
|
}, [context]);
|
|
}
|