Files
discord-decomp/modules/collectibles/hooks/useTrackShopCardClick.tsx
T
2026-11-01 12:12:55 +02:00

46 lines
1.8 KiB
TypeScript

// Metro module 8697 (f8698).
import { useCallback } from "react";
import { useSelectedVariantIndex } from "../CollectiblesShopVariantsUIStore";
import { AnalyticEvents } from "../../../Constants";
import { useCollectiblesAnalyticsContext } from "../CollectiblesAnalyticsContext";
import { useCurrentUserIfAvailable } from "./useCurrentUser";
import { getShopDiscountSource, getAnalyticsShopDiscountSource } from "../CollectiblesUtils";
import { getIsVariantProduct, getProductSkuIds } from "../utils/CollectiblesProductUtils";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
export function useTrackShopCardClick({ product, analyticsLocations }) {
let r16 = useCollectiblesAnalyticsContext();
if (r16 == null) {
r16 = {};
}
const { cardId, sessionId, tilePosition } = r16;
const selectedVariantIndex = useSelectedVariantIndex(product);
const shopDiscountSource = getShopDiscountSource(useCurrentUserIfAvailable());
return useCallback((a0, a1) => {
let sku_id;
if (getIsVariantProduct(product)) {
let r15 = a1;
const variants = product.variants;
if (a1 == null) {
r15 = selectedVariantIndex;
}
let r18 = variants[r15]?.skuId;
if (r18 == null) {
r18 = product.skuId;
}
sku_id = r18;
} else {
sku_id = product.skuId;
}
AnalyticsUtils.track(AnalyticEvents.SHOP_CARD_CLICKED, {
sku_id,
cta: a0,
shop_session_id: sessionId,
card_id: cardId,
product_sku_ids: getProductSkuIds(product),
location_stack: analyticsLocations,
position_in_section: tilePosition,
discount_source: getAnalyticsShopDiscountSource(shopDiscountSource)
});
}, [product, selectedVariantIndex, sessionId, cardId, analyticsLocations, tilePosition, shopDiscountSource]);
}