NTP-11825 | Load Time Event Changes (#13606)

This commit is contained in:
Prajjaval Verma
2024-11-15 17:35:58 +05:30
committed by GitHub
parent cc9084c059
commit 58c9c8c4c6
2 changed files with 10 additions and 8 deletions

View File

@@ -1,11 +1,12 @@
import { useEffect, useState } from "react";
import { useAnalyticsEvent } from "./useAnalyticsEvent";
import { AnalyticsEvent } from "../interface";
import { EVENT_NAMES, EVENT_PROPERTY_KEYS } from "../constants";
import { AnalyticsEvent } from "../interface";
import { ScreenState } from "../screen/BaseScreen";
import { useAnalyticsEvent } from "./useAnalyticsEvent";
const useScreenLoadTime = (
screenName: string | null,
moduleName: string | null,
screenState: ScreenState | null | undefined,
) => {
const [startTime, setStartTime] = useState<number | null>(null);
@@ -20,13 +21,13 @@ const useScreenLoadTime = (
startTime !== null
) {
const endTime = performance.now();
const loadTime = ((endTime - startTime) / 1000).toFixed(3) + "s";
if (screenName) {
const loadTime = Math.round(endTime - startTime);
if (screenName && moduleName) {
const analyticsEvent: AnalyticsEvent = {
name: EVENT_NAMES.SCREEN_LOAD_TIME,
name: moduleName + "_" + EVENT_NAMES.SCREEN_LOAD_TIME,
properties: {
[EVENT_PROPERTY_KEYS.SCREEN_NAME]: screenName,
[EVENT_PROPERTY_KEYS.LOAD_TIME]: loadTime,
[EVENT_PROPERTY_KEYS.LOAD_TIME]: loadTime.toString(),
[EVENT_PROPERTY_KEYS.SCREEN_STATE]: ScreenState[screenState],
},
};

View File

@@ -31,7 +31,7 @@ const BaseScreen: React.FC<{ navigation: any; route: any }> = ({
}) => {
const [screenData, setScreenData] = useState<ScreenData | null>(null);
const [screenName, setScreenName] = useState<string | null>(null);
const [screenKey, setScreenKey] = useState<string | null>(null);
const [moduleName, setModuleName] = useState<string | null>(null);
const [screenState, setScreenState] = useState<ScreenState | null>(
ScreenState.LOADING,
);
@@ -51,6 +51,7 @@ const BaseScreen: React.FC<{ navigation: any; route: any }> = ({
useEffect(() => {
if (!!getScreenNameFromCtaData(route.params?.ctaData)) {
setScreenName(getScreenNameFromCtaData(route.params?.ctaData)!!);
setModuleName(getScreenMapperNameFromCtaData(route.params?.ctaData)!!);
}
}, []);
@@ -70,7 +71,7 @@ const BaseScreen: React.FC<{ navigation: any; route: any }> = ({
}
}, [route.params.ctaData, screenState]);
useScreenLoadTime(screenName, screenData?.screenState);
useScreenLoadTime(screenName, moduleName, screenData?.screenState);
const handleActions = (actionPayload?: GenericActionPayload) => {
actionPayload?.metaData?.forEach(ActionMetaData => {