import { getBundleVersion } from "../../../network/NetworkUtils"; import { EVENT_PROPERTY_KEYS } from "../constants"; import { AnalyticsEvent } from "../interface"; import { NativeAnalyticsModule } from "../native-module/NativeModules"; export const useAnalyticsEvent = () => { return { sendAsAnalyticsEvent, sendAsAppDowntimeEvent, sendAsGlobalErrorEvent, }; }; export const sendAsAnalyticsEvent = (analyticsEvent: AnalyticsEvent) => { const propertiesWithBundleVersion = { ...analyticsEvent.properties, [EVENT_PROPERTY_KEYS.BUNDLE_VERSION]: getBundleVersion().toString(), }; NativeAnalyticsModule.sendAsAnalyticsEvent( analyticsEvent.name, propertiesWithBundleVersion, ); }; export const sendAsAppDowntimeEvent = (event: AppDowntimeData) => { const { reason = null, screenName = null, moduleName = null, statusCode = null, networkType = null, flowName = null, methodName = null, vendorName = null, extras = null, eventName = "global_app_downtime", } = event; NativeAnalyticsModule.sendAsAppDowntimeEvent({ reason, screenName, moduleName, statusCode, networkType, flowName, methodName, vendorName, extras, eventName, }); }; export const sendAsGlobalErrorEvent = (event: GlobalErrorData) => { const { reason = null, source = null, moduleName, globalErrorType, statusCode = null, networkType = null, flowName = null, methodName = null, vendorName = null, extras = null, journeySource = null, isAppDowntimeEvent = null, } = event; NativeAnalyticsModule.sendAsGlobalErrorEvent({ reason, source, moduleName, globalErrorType, statusCode, networkType, flowName, methodName, vendorName, extras, journeySource, isAppDowntimeEvent, }); };