46 lines
1.8 KiB
TypeScript
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]);
|
|
}
|