// Metro module 9828 (f9829). import { useRef, useEffect } from "react"; import { AnalyticEvents } from "../../../../Constants"; import { useNativeGiftContext } from "../../../payments/native/NativeGiftContext"; import { PaymentFlowStep, getPaymentFlowStepAnalyticsFields } from "../PremiumAnalyticsUtils"; import { isIOS } from "../../../../utils/PlatformUtils"; import AnalyticsUtils from "../../../../utils/AnalyticsUtils"; import { intl, t } from "../../../../intl/index.native"; import { trackPaymentFlowStartedAnalyticsAndCTP } from "../../../experiments/trigger_points/PaymentFlowStartedTriggerPoint"; export default function PremiumGiftAnalytics({ currentStep, children }) { const nativeGiftContext = useNativeGiftContext(); const { customGiftMessage, productId, basePurchaseAnalytics } = nativeGiftContext; const ref = useRef(null); const r22 = Date.now(); const ref2 = useRef(r22); const ref3 = useRef(r22); useEffect(() => { if (currentStep !== ref.current) { const current = Date.now(); if (ref.current != null) { if (currentStep === PaymentFlowStep.CONFIRM && isIOS()) { AnalyticsUtils.track(AnalyticEvents.PAYMENT_FLOW_SUCCEEDED, { ...getPaymentFlowStepAnalyticsFields(basePurchaseAnalytics, { subscription_plan_gateway_plan_id: productId }), is_custom_message_edited: customGiftMessage !== intl.string(t.ZkOo1U), is_custom_emoji_sound_available: false }); } AnalyticsUtils.track(AnalyticEvents.PAYMENT_FLOW_STEP, { ...getPaymentFlowStepAnalyticsFields(basePurchaseAnalytics, { from_step: ref.current, to_step: currentStep, step_duration_ms: current - ref3.current, flow_duration_ms: current - ref2.current, subscription_plan_gateway_plan_id: productId }) }); } else { trackPaymentFlowStartedAnalyticsAndCTP(basePurchaseAnalytics); AnalyticsUtils.track(AnalyticEvents.PAYMENT_FLOW_LOADED, { ...getPaymentFlowStepAnalyticsFields(basePurchaseAnalytics, { initial_step: currentStep }) }); } ref.current = currentStep; ref3.current = current; } }, [basePurchaseAnalytics, currentStep, ref, customGiftMessage, productId]); useEffect(() => () => { if (ref.current !== PaymentFlowStep.CONFIRM) { AnalyticsUtils.track(AnalyticEvents.PAYMENT_FLOW_CANCELED, basePurchaseAnalytics); } }, [basePurchaseAnalytics, ref]); return children; };