Files
super-app/App/common/hooks/useAnalyticsEvent.ts
2024-03-27 15:06:03 +00:00

70 lines
1.5 KiB
TypeScript

import { AnalyticsEvent } from "../interface";
import { NativeAnalyticsModule } from "../native-module/NativeModules";
import { useAsRecord } from "../utilities/RecordUtils";
export const sendAsAnalyticsEvent = (analyticsEvent: AnalyticsEvent) => {
const eventName = analyticsEvent.name;
const eventProperties = analyticsEvent.properties;
NativeAnalyticsModule.sendAsAnalyticsEvent(
eventName,
useAsRecord(eventProperties)
);
};
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,
} = event;
NativeAnalyticsModule.sendAsGlobalErrorEvent({
reason,
source,
moduleName,
globalErrorType,
statusCode,
networkType,
flowName,
methodName,
vendorName,
extras,
journeySource,
});
};