import { getVariant } from '../../utils/cart'; import { pushDatalayer } from '../../utils/pushDatalayer'; import type { Showcase, UrlBrand, UrlListing, Search, } from '../../../Api/types'; export function viewItemList(page: UrlBrand | UrlListing | Search): void; export function viewItemList(page: Array): void; export function viewItemList( page: UrlBrand | UrlListing | Array | Search, ) { if (Array.isArray(page)) { page.map(showcase => { pushDatalayer({ event: 'view_item_list', ecommerce: { currency: 'BRL', item_list_id: showcase.name, item_list_name: showcase.name, items: showcase.products.map(showcaseProduct => { return { coupon: '', item_brand: showcaseProduct.brand?.name || '', item_category: showcaseProduct.mainCategory?.name || '', item_id: showcaseProduct.id, item_name: showcaseProduct.name, item_variant: getVariant(showcaseProduct), price: showcaseProduct.price?.salePrice || 0, quantity: 1, }; }), }, }); }); return; } pushDatalayer({ event: 'view_item_list', ecommerce: { currency: 'BRL', item_list_id: page.type === 'search' ? 'Search Results' : page.entity.name, item_list_name: page.type === 'search' ? 'Search Results' : page.entity.name, items: page.content.registers.map(pageItem => { return { coupon: '', item_brand: pageItem.brand?.name || '', item_category: pageItem.mainCategory?.name || '', item_id: pageItem.id, item_name: pageItem.name, item_variant: getVariant(pageItem), price: pageItem.price?.salePrice || 0, quantity: 1, }; }), }, }); }