import {NativeModules} from 'react-native'; import {AppMetricaConfig} from '../index'; const {AppMetrica} = NativeModules; export type AppMetricaECommerceScreen = { name: string; searchQuery?: string; categoriesPath?: Array; payload?: Record; } export type AppMetricaECommerceReferrer = { type?: string; identifier?: string; screen?: AppMetricaECommerceScreen; } export type AppMetricaECommercePrice = { amount: number; unit: string; } export type AppMetricaECommerceProduct = { id: string; name: string; actualPrice?: AppMetricaECommercePrice; originalPrice?: AppMetricaECommercePrice; categoriesPath?: Array; payload?: Record; } export type AppMetricaECommerceCartItem = { product: AppMetricaECommerceProduct; quantity: number; } export type AppMetricaECommerceOrder = { identifier: string; cartItems: Array; payload?: Record; } export default { productCardShow(product: AppMetricaECommerceProduct, screen: AppMetricaECommerceScreen) { AppMetrica.reportEcommerceProductCardShow(product, screen); }, productDetailShow(product: AppMetricaECommerceProduct, referer: AppMetricaECommerceReferrer | null = null) { AppMetrica.reportEcommerceProductDetailShow(product, referer); }, addCartItem(cartItem: AppMetricaECommerceCartItem, referer: AppMetricaECommerceReferrer | null = null) { AppMetrica.reportEcommerceAddCartItem(cartItem, referer); }, removeCartItem(cartItem: AppMetricaECommerceCartItem, referer: AppMetricaECommerceReferrer | null = null) { AppMetrica.reportEcommerceRemoveCartItem(cartItem, referer); }, beginCheckout(order: AppMetricaECommerceOrder) { AppMetrica.reportEcommerceBeginCheckout(order); }, purchase(order: AppMetricaECommerceOrder) { AppMetrica.reportEcommercePurchase(order); }, };