155 lines
6.1 KiB
TypeScript
155 lines
6.1 KiB
TypeScript
// Metro module 10970 (f10971).
|
|
import { createElement, useRef, useEffect } from "react";
|
|
import AppStateStore from "../../../stores/native/AppStateStore";
|
|
import { MIN_QUEST_CONTENT_VISIBILITY_PERCENTAGE } from "../lib/analytics/ContentImpressionTrackerConstants";
|
|
import { AppStates } from "../../../Constants";
|
|
import { useRecyclingState } from "../../../_bundle/noop_6676";
|
|
import usePrevious from "../../../hooks/usePrevious";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import { useAdContentImpressionTrackerProps } from "../lib/analytics/ContentImpressionTrackerHooks";
|
|
import { QuestContentImpressionTracker } from "../lib/analytics/ContentImpressionTracker";
|
|
import { AdCreativeType } from "../../../_bundle/Module6013";
|
|
const AdContentImpressionTrackerBaseNative = function AdContentImpressionTrackerBaseNative(a0) {
|
|
let r81;
|
|
let adContentIds, visibilityRef, setVisible;
|
|
const focused = useStateFromStores([AppStateStore], () => AppStateStore.getState()) === AppStates.ACTIVE;
|
|
const ref = useRef(null);
|
|
const previous = usePrevious(focused);
|
|
const adContentImpressionTrackerProps = useAdContentImpressionTrackerProps(a0);
|
|
const { key, adContentIds: adContentIds2 } = adContentImpressionTrackerProps;
|
|
const r13 = {
|
|
...a0,
|
|
adContentIds: adContentIds2
|
|
};
|
|
adContentIds = void 0;
|
|
visibilityRef = void 0;
|
|
adContentIds = r13.adContentIds;
|
|
visibilityRef = r13.visibilityRef;
|
|
let overrideVisibility = r13.overrideVisibility;
|
|
setVisible = void 0;
|
|
let r49;
|
|
[r49, setVisible] = useRecyclingState(false, [adContentIds.join("_")]);
|
|
useEffect(() => {
|
|
(function initHandlers({ adContentIds: adContentIds2, setVisible: setVisible2, visibilityRef: visibilityRef2 }) {
|
|
if (visibilityRef2 != null) {
|
|
const _loop = function _loop(a0) {
|
|
visibilityRef2.current.children[a0] = {
|
|
...visibilityRef2.current.children[a0],
|
|
calculateVisibility: function calculateVisibility() {
|
|
let r24, r39, r47, width;
|
|
const r3 = visibilityRef2 == null;
|
|
let r13 = void 0;
|
|
if (!r3) {
|
|
const current = visibilityRef2.current;
|
|
const r18 = current == null;
|
|
r13 = void 0;
|
|
if (!r18) {
|
|
const children2 = current.children;
|
|
r13 = children2 == null ? void 0 : children2[a0];
|
|
}
|
|
}
|
|
const layout = r13?.layout;
|
|
L21: {
|
|
const r23 = layout == null;
|
|
r24 = 0;
|
|
if (!r23) {
|
|
const r29 = (visibilityRef2 == null ? void 0 : visibilityRef2.current.parent?.layout) == null;
|
|
r24 = 0;
|
|
if (!r29) {
|
|
let axis = visibilityRef2.current.axis;
|
|
if (axis == null) {
|
|
axis = "vertical";
|
|
}
|
|
if (axis === "horizontal") {
|
|
const r60 = visibilityRef2.current.parent.scrollX == null;
|
|
r24 = 0;
|
|
if (r60) {
|
|
break L21;
|
|
}
|
|
const r62 = [r13.layout.x, r13.layout.x + r13.layout.width];
|
|
const r70 = [visibilityRef2.current.parent.scrollX, visibilityRef2.current.parent.scrollX + visibilityRef2.current.parent.layout.width];
|
|
width = r13.layout.width;
|
|
r47 = r70;
|
|
r39 = r62;
|
|
} else {
|
|
const r36 = visibilityRef2.current.parent.scrollY == null;
|
|
r24 = 0;
|
|
if (r36) {
|
|
break L21;
|
|
}
|
|
r39 = [r13.layout.y, r13.layout.y + r13.layout.height];
|
|
r47 = [visibilityRef2.current.parent.scrollY, visibilityRef2.current.parent.scrollY + visibilityRef2.current.parent.layout.height];
|
|
width = r13.layout.height;
|
|
}
|
|
if (visibilityRef2.current.parent.firstItemOffset != null) {
|
|
const firstItemOffset = visibilityRef2.current.parent.firstItemOffset;
|
|
r39[0] = r39[0] + firstItemOffset;
|
|
r39[1] = r39[1] + firstItemOffset;
|
|
}
|
|
const r94 = Math.max(r39[0], r47[0]);
|
|
r24 = Math.min(Math.max(0, Math.min(r39[1], r47[1]) - r94) / width, 1);
|
|
}
|
|
}
|
|
}
|
|
setVisible2(r24 >= MIN_QUEST_CONTENT_VISIBILITY_PERCENTAGE);
|
|
}
|
|
};
|
|
};
|
|
for (const item of adContentIds2) {
|
|
_loop(item);
|
|
}
|
|
}
|
|
})({
|
|
adContentIds,
|
|
setVisible,
|
|
visibilityRef
|
|
});
|
|
const children = visibilityRef == null ? void 0 : visibilityRef.current?.children;
|
|
return () => {
|
|
if (children != null) {
|
|
for (const adContentId of adContentIds) {
|
|
const r16 = children[adContentId];
|
|
if (r16 != null) {
|
|
r16.calculateVisibility = void 0;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}, [adContentIds, setVisible, visibilityRef]);
|
|
if (overrideVisibility == null) {
|
|
overrideVisibility = r49;
|
|
}
|
|
const r60 = {
|
|
...a0,
|
|
...{
|
|
visible: overrideVisibility,
|
|
visibleChanged: overrideVisibility !== usePrevious(overrideVisibility)
|
|
},
|
|
focused,
|
|
focusedChanged: focused !== previous,
|
|
reference: ref,
|
|
isFocused: focused
|
|
};
|
|
const key2 = a0.skipRemountKey ? void 0 : key;
|
|
const r75 = "questOrQuests" in a0;
|
|
const r76 = {
|
|
...r60,
|
|
key: key2,
|
|
adContentIds: adContentIds2
|
|
};
|
|
if (r75) {
|
|
r76.adCreativeType = AdCreativeType.QUEST;
|
|
r81 = r76;
|
|
} else {
|
|
r76.adCreativeType = a0.adCreativeType;
|
|
r81 = r76;
|
|
}
|
|
return createElement(QuestContentImpressionTracker, r81);
|
|
};
|
|
export function QuestContentImpressionTrackerNative(props) {
|
|
return <AdContentImpressionTrackerBaseNative {...props} />;
|
|
}
|
|
export function BillableAdPlacementImpressionTrackerNative(props) {
|
|
return <AdContentImpressionTrackerBaseNative {...props} />;
|
|
}
|