From fc98c7331645df3fb82126dd5e3ddf33a6b68b14 Mon Sep 17 00:00:00 2001 From: Kshitij Pramod Ghongadi Date: Sun, 7 Apr 2024 20:25:37 +0530 Subject: [PATCH] TP-61032 | Alfred Screen Name Filter support (#10347) --- App/common/screen/BaseScreen.tsx | 17 ++++++++++++----- App/common/utilities/AlfredUtils.ts | 2 ++ .../connectors/AlfredModuleConnector.kt | 5 +++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/App/common/screen/BaseScreen.tsx b/App/common/screen/BaseScreen.tsx index 75ea734744..3d4393a453 100644 --- a/App/common/screen/BaseScreen.tsx +++ b/App/common/screen/BaseScreen.tsx @@ -1,4 +1,3 @@ -import { useFocusEffect } from "@react-navigation/native"; import { isEqual } from "lodash"; import React, { useEffect, useMemo, useState } from "react"; import { View } from "react-native"; @@ -7,21 +6,25 @@ import { commonStyles } from "../../Container/Navi-Insurance/Styles"; import { ActionMetaData, GenericActionPayload } from "../actions/GenericAction"; import { sendAsAnalyticsEvent } from "../hooks/useAnalyticsEvent"; import { useBottomSheet } from "../hooks/useBottomSheet"; +import { logToSentry } from "../hooks/useSentryLogging"; import { CtaData } from "../interface"; import { ModalView } from "../interface/modals/ModalView"; import { ScreenData } from "../interface/widgets/screenData/ScreenData"; import { Router } from "../navigator/NavigationRouter"; import { updateCtaData } from "../redux/screens/screenActionCreators"; +import { setCurrentScreenName } from "../utilities/AlfredUtils"; import { getCacheKey, getScreenDataFromCache, isScreenWhiteListedForCaching, saveScreenDataInCache, } from "../utilities/CacheUtils"; -import { getScreenNameFromCtaData } from "../utilities/MiscUtils"; +import { + getScreenMapperNameFromCtaData, + getScreenNameFromCtaData, +} from "../utilities/MiscUtils"; import { WidgetActionTypes } from "../widgets/widget-actions/WidgetActionTypes"; import { ScreenMapper } from "./screen-mappers/ScreenMapper"; -import { logToSentry } from "../hooks/useSentryLogging"; const BaseScreen: React.FC<{ navigation: any; route: any }> = ({ navigation, @@ -103,7 +106,6 @@ const BaseScreen: React.FC<{ navigation: any; route: any }> = ({ } }, [route.params.ctaData, screenState]); - const { bottomsheet, addBottomSheet } = useBottomSheet(); const handleActions = (actionPayload?: GenericActionPayload) => { @@ -134,6 +136,11 @@ const BaseScreen: React.FC<{ navigation: any; route: any }> = ({ }); }; const MemoizedScreenMapper = useMemo(() => { + const secondIdentifier = getScreenMapperNameFromCtaData(cta); + setCurrentScreenName( + "RN_" + secondIdentifier?.toUpperCase() + "_" + screenName + ); + return ( {ScreenMapper.getScreenMapper(cta, screenData, handleActions)} @@ -158,4 +165,4 @@ export enum ScreenState { OVERLAY, } -export default BaseScreen; \ No newline at end of file +export default BaseScreen; diff --git a/App/common/utilities/AlfredUtils.ts b/App/common/utilities/AlfredUtils.ts index aff07f98ce..b35f181600 100644 --- a/App/common/utilities/AlfredUtils.ts +++ b/App/common/utilities/AlfredUtils.ts @@ -4,3 +4,5 @@ export const setBottomSheetView = (id: number | null) => AlfredModuleConnector.setBottomSheetView(id!!); export const clearBottomSheet = () => AlfredModuleConnector.clearBottomSheet(); + +export const setCurrentScreenName = (screenName: string) => AlfredModuleConnector.setCurrentScreenName(screenName); diff --git a/android/app/src/main/java/com/naviapp/react_native/native_bridge/connectors/AlfredModuleConnector.kt b/android/app/src/main/java/com/naviapp/react_native/native_bridge/connectors/AlfredModuleConnector.kt index dd02336d57..4044beead2 100644 --- a/android/app/src/main/java/com/naviapp/react_native/native_bridge/connectors/AlfredModuleConnector.kt +++ b/android/app/src/main/java/com/naviapp/react_native/native_bridge/connectors/AlfredModuleConnector.kt @@ -37,4 +37,9 @@ class AlfredModuleConnector internal constructor(context: ReactApplicationContex fun clearBottomSheet() { AlfredManager.clearBottomSheetView() } + + @ReactMethod + fun setCurrentScreenName(screenName: String) { + AlfredManager.setCurrentScreenName(screenName) + } } \ No newline at end of file