diff --git a/src/common/TrackingComponent.tsx b/src/common/TrackingComponent.tsx index 3099019c..8de3d3c9 100644 --- a/src/common/TrackingComponent.tsx +++ b/src/common/TrackingComponent.tsx @@ -73,6 +73,7 @@ import { initialize } from 'react-native-clarity'; import { getPermissionsToRequest } from '@components/utlis/PermissionUtils'; import { syncToLonghorn } from '../miniModules/callingAgents/screens/homeScreen/action'; import { updateImageUploadComponent } from '@components/form/services/formComponents'; +import React from "react"; export enum FOREGROUND_TASKS { GEOLOCATION = 'GEOLOCATION', @@ -275,7 +276,7 @@ const TrackingComponent: React.FC = ({ children }) => { const taskSyncToLonghorn = async () => { const allPermissionsGranted = await checkPermissions(); - await syncToLonghorn(allPermissionsGranted, agentId, appVersion); + await syncToLonghorn({allPermissionsGranted, agentId, appVersion, isSyncToastEnabled: false}); }; const tasks: IForegroundTask[] = [ @@ -346,12 +347,6 @@ const TrackingComponent: React.FC = ({ children }) => { delay: 3 * MILLISECONDS_IN_A_MINUTE, // 3 minutes onLoop: true, }, - { - taskId: FOREGROUND_TASKS.COSMOS_SYNC_WITH_LONGHORN, - task: taskSyncToLonghorn, - delay: 5 * MILLISECONDS_IN_A_SECOND, - onLoop: true, - } ]; if (!isTeamLead) { @@ -362,7 +357,6 @@ const TrackingComponent: React.FC = ({ children }) => { onLoop: true, }); } - const handleDataSync = () => { if (!isOnline) { return; @@ -382,6 +376,17 @@ const TrackingComponent: React.FC = ({ children }) => { }); } + + if(GLOBAL?.BUILD_FLAVOUR === 'callingAgents') { + tasks.push({ + taskId: FOREGROUND_TASKS.COSMOS_SYNC_WITH_LONGHORN, + task: taskSyncToLonghorn, + delay: 5 * MILLISECONDS_IN_A_SECOND, + onLoop: true, + }); + + } + const userActivityUpdateOnBackground = async () => { const foregroundTimestamp = await getItem(StorageKeys.APP_FOREGROUND_TIMESTAMP); const backgroundTimestamp = await getItem(StorageKeys.APP_BACKGROUND_TIMESTAMP); @@ -427,6 +432,7 @@ const TrackingComponent: React.FC = ({ children }) => { MS_CLARITY_PROJECT_ID && !GLOBAL.MS_CLARITY_INITIALIZED && msClarityResponse && + //@ts-expect-error - The configuration will change at runtime ENV === 'prod' ) { addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.MS_CLARITY_INITIALIZED, { @@ -464,8 +470,7 @@ const TrackingComponent: React.FC = ({ children }) => { }, []); useEffect(() => { - let appStateSubscription: NativeEventSubscription; - appStateSubscription = AppState.addEventListener('change', handleAppStateChange); + const appStateSubscription = AppState.addEventListener('change', handleAppStateChange); CosmosForegroundService.start(tasks); return () => { appStateSubscription?.remove(); diff --git a/src/constants/Global.ts b/src/constants/Global.ts index 85cecf2e..ab93a1d3 100644 --- a/src/constants/Global.ts +++ b/src/constants/Global.ts @@ -21,6 +21,7 @@ export const GLOBAL = { } as unknown as IGlobalUserData; interface IGlobalUserData { + MS_CLARITY_INITIALIZED: boolean; token?: string; deviceId?: string; agentId?: string; diff --git a/src/miniModules/callingAgents/screens/homeScreen/action.ts b/src/miniModules/callingAgents/screens/homeScreen/action.ts index dae4cfbe..14b4f6e1 100644 --- a/src/miniModules/callingAgents/screens/homeScreen/action.ts +++ b/src/miniModules/callingAgents/screens/homeScreen/action.ts @@ -1,12 +1,20 @@ import axiosInstance, { ApiKeys, getApiUrl } from "@components/utlis/apiHelper"; import { toast } from "@rn-ui-lib/components/toast"; -export const syncToLonghorn = async ( + +type SyncToLonghornParams = { allPermissionsGranted: boolean, agentId: string, appVersion: string, - showSyncToast ?: boolean -) => { + isSyncToastEnabled ?: boolean +} +export const syncToLonghorn = async ({ + allPermissionsGranted, + agentId, + appVersion, + isSyncToastEnabled + +}:SyncToLonghornParams) => { const url = getApiUrl(ApiKeys.SYNC_COSMOS_TO_LONGHORN); const payload = { allPermissionsGranted, @@ -16,6 +24,6 @@ export const syncToLonghorn = async ( try { await axiosInstance.post(url, payload , { headers: { donotHandleError: true } }); } catch { - showSyncToast && toast({ type: 'error', text1: 'Could not sync. Please try again' }); + isSyncToastEnabled && toast({ type: 'error', text1: 'Could not sync. Please try again' }); } } \ No newline at end of file diff --git a/src/miniModules/callingAgents/screens/homeScreen/index.tsx b/src/miniModules/callingAgents/screens/homeScreen/index.tsx index 812ca79d..34ebf05b 100644 --- a/src/miniModules/callingAgents/screens/homeScreen/index.tsx +++ b/src/miniModules/callingAgents/screens/homeScreen/index.tsx @@ -24,7 +24,7 @@ const CallingAgentHomeScreen = () => { const appVersion = getAppVersion(); const handleOnPress = async () => { const allPermissionsGranted = await checkPermissions(); - await syncToLonghorn(allPermissionsGranted, agentId, appVersion, true); + await syncToLonghorn({allPermissionsGranted, agentId, appVersion, isSyncToastEnabled:true}); }; return ( @@ -55,7 +55,7 @@ const CallingAgentHomeScreen = () => {