34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
// Metro module 11274 (f11275).
|
|
import { useRef, useCallback } from "react";
|
|
import { useAppLauncherContext } from "../AppLauncherContext";
|
|
import { useFocusEffect } from "../../../../_bundle/Module1481";
|
|
import { trackImpression } from "../../../app_analytics/useTrackImpression";
|
|
import { ImpressionTypes, ImpressionNames } from "../../../../_bundle/Module503";
|
|
export function useTrackAppLauncherItemImpressionOnFirstView() {
|
|
const entrypoint = useAppLauncherContext().entrypoint;
|
|
const ref = useRef(new Set());
|
|
useFocusEffect(useCallback(() => {
|
|
ref.current.clear();
|
|
}, []));
|
|
return {
|
|
trackAppLauncherItemImpressionOnFirstView: useCallback(({ itemKey, sectionName, sectionPosition, sectionOverallPosition, applicationId, commandId, applicationFlags }) => {
|
|
if (!ref.current.has(itemKey)) {
|
|
ref.current.add(itemKey);
|
|
trackImpression({
|
|
type: ImpressionTypes.VIEW,
|
|
name: ImpressionNames.APP_LAUNCHER_ITEM,
|
|
properties: {
|
|
source: entrypoint,
|
|
section_name: sectionName,
|
|
section_position: sectionPosition,
|
|
section_overall_position: sectionOverallPosition,
|
|
application_id: applicationId,
|
|
command_id: commandId,
|
|
application_flags: applicationFlags
|
|
}
|
|
});
|
|
}
|
|
}, [entrypoint])
|
|
};
|
|
}
|