diff --git a/src/components/form/services/forms.service.ts b/src/components/form/services/forms.service.ts index eb6cff43..13a89209 100644 --- a/src/components/form/services/forms.service.ts +++ b/src/components/form/services/forms.service.ts @@ -16,13 +16,13 @@ export const getVisitedWidgetsNodeList = ( let visitedWidgetsNodeList: string[] = [startingWidgetName]; let nextScreenName = ''; - const MAX_WIDGET_SIZE = Object.keys(templateData.widget).length; + const MAX_WIDGET_SIZE = Object.keys(templateData?.widget || {}).length; let iteration = 0; while (nextScreenName !== CommonCaseWidgetId.END && iteration++ <= MAX_WIDGET_SIZE) { - const currentScreenName = visitedWidgetsNodeList[visitedWidgetsNodeList.length - 1]; + const currentScreenName = visitedWidgetsNodeList?.[visitedWidgetsNodeList?.length - 1]; nextScreenName = getNextWidget( - templateData.widget[currentScreenName].conditionActions, + templateData?.widget?.[currentScreenName]?.conditionActions, formWidgetContext ); visitedWidgetsNodeList.push(nextScreenName); diff --git a/src/components/utlis/PermissionUtils.ts b/src/components/utlis/PermissionUtils.ts index e91b5bd6..c4ea066f 100644 --- a/src/components/utlis/PermissionUtils.ts +++ b/src/components/utlis/PermissionUtils.ts @@ -1,7 +1,8 @@ -import { Permission, PermissionsAndroid, Platform } from 'react-native'; +import { AppState, Permission, PermissionsAndroid, Platform } from 'react-native'; import { PermissionsToCheck } from '../../common/Constants'; import { checkNotifications } from 'react-native-permissions'; import CosmosForegroundService from '../../services/foregroundServices/foreground.service'; +import { AppStates } from '@types/appStates'; let isNotificationPermissionEnabled = true; @@ -32,6 +33,7 @@ export const getPermissionsToRequest = async () => { if (permission === PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION) { const notificationPermission = await checkNotifications(); const notificationStatus = notificationPermission.status === 'granted'; + isNotificationPermissionEnabled = notificationStatus; if (!notificationStatus) { permissionsToRequest.push(permission); } else { @@ -43,7 +45,6 @@ export const getPermissionsToRequest = async () => { CosmosForegroundService.update(); } } - isNotificationPermissionEnabled = notificationStatus; continue; } const granted = await PermissionsAndroid.check(permission); diff --git a/src/components/utlis/firebaseUtils.ts b/src/components/utlis/firebaseUtils.ts index 846b9bec..18cd76ca 100644 --- a/src/components/utlis/firebaseUtils.ts +++ b/src/components/utlis/firebaseUtils.ts @@ -5,7 +5,7 @@ export const initCrashlytics = async (userState: IUserSlice) => { if (!userState) return; await Promise.all([ - crashlytics().setUserId(userState.user?.emailId as string), + crashlytics().setUserId((userState.user?.emailId || '') as string), crashlytics().setAttributes({ deviceId: userState.deviceId, phoneNumber: userState.user?.phoneNumber as string, diff --git a/src/services/foregroundServices/foreground.service.ts b/src/services/foregroundServices/foreground.service.ts index f40965ba..dca532c4 100644 --- a/src/services/foregroundServices/foreground.service.ts +++ b/src/services/foregroundServices/foreground.service.ts @@ -1,6 +1,8 @@ import ForegroundService from '@supersami/rn-foreground-service'; import { logError } from '../../components/utlis/errorUtils'; import { GLOBAL } from '../../constants/Global'; +import { AppState } from 'react-native'; +import { AppStates } from '@types/appStates'; export interface IForegroundTask { task: () => void; @@ -34,6 +36,9 @@ class CosmosForegroundService { private constructor() {} static async start(tasks?: IForegroundTask[]) { + if (AppState.currentState !== AppStates.ACTIVE) { + return; + } if (GLOBAL.IS_IMPERSONATED) { return; } @@ -60,6 +65,9 @@ class CosmosForegroundService { } static async update() { + if (AppState.currentState !== AppStates.ACTIVE) { + return; + } if (GLOBAL.IS_IMPERSONATED) { return; }