From efe55c85f1166335d464c24a052be98f050cb0d9 Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Tue, 10 Jun 2025 08:32:59 +0530 Subject: [PATCH 1/8] NTP-71625 | Fix event issue of search by geocode --- src/screens/MapView/ProfileHeader/index.tsx | 12 ++++++++++-- src/screens/MapView/TopAddress/AddressListItem.tsx | 1 + src/screens/addresses/common/AddressItemHeader.tsx | 7 ++++++- src/screens/addresses/interfaces.ts | 1 + .../addresses/otherAddresses/OtherAddressItem.tsx | 1 + .../similarAddresses/TopAddressSimilarAddresses.tsx | 1 + src/screens/caseDetails/AllocatedAddressDetails.tsx | 11 +++++++++-- 7 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/screens/MapView/ProfileHeader/index.tsx b/src/screens/MapView/ProfileHeader/index.tsx index f52595f2..633ed7f3 100644 --- a/src/screens/MapView/ProfileHeader/index.tsx +++ b/src/screens/MapView/ProfileHeader/index.tsx @@ -25,7 +25,11 @@ interface ProfileHeaderProps { addressItemRef?: React.RefObject; } -const ProfileHeader: React.FC = ({ caseId, showDirections = false, addressItemRef }) => { +const ProfileHeader: React.FC = ({ + caseId, + showDirections = false, + addressItemRef, +}) => { const caseDetails = useAppSelector((state) => state.allCases?.caseDetails?.[caseId]); const { customerName, totalOverdueAmount, paymentStatus, collectionTag, dpdBucket } = caseDetails || {}; @@ -60,7 +64,11 @@ const ProfileHeader: React.FC = ({ caseId, showDirections = const handleOpenMapForAddresses = () => { setIsModalVisible(!isModalVisible); - addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, {}); + addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, { + attempted_at_address: caseDetails?.addressReferenceId, + address_rank: caseDetails?.pinRank, + caseId, + }); }; return ( diff --git a/src/screens/MapView/TopAddress/AddressListItem.tsx b/src/screens/MapView/TopAddress/AddressListItem.tsx index 43e83dc6..c3c12864 100644 --- a/src/screens/MapView/TopAddress/AddressListItem.tsx +++ b/src/screens/MapView/TopAddress/AddressListItem.tsx @@ -71,6 +71,7 @@ const AddressListItem: React.FC = memo( > { isSimilarAddressPage = false, modalTopOffset, modalRightOffset, + caseId = '', } = props; const { pinCode, city, latitude, longitude, rank, visited, locationSubType } = @@ -60,7 +61,11 @@ const AddressItemHeader = (props: ITopAddressItemHeader) => { }; const handleOpenMapForAddresses = () => { setIsModalVisible(!isModalVisible); - addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, {}); + addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, { + attempted_at_address: locationDetails?.referenceId, + address_rank: rank, + caseId + }); }; return ( diff --git a/src/screens/addresses/interfaces.ts b/src/screens/addresses/interfaces.ts index 899c10a0..a866c50a 100644 --- a/src/screens/addresses/interfaces.ts +++ b/src/screens/addresses/interfaces.ts @@ -56,6 +56,7 @@ export interface ITopAddressItemHeader { isSimilarAddressPage?: boolean; modalTopOffset?: number; modalRightOffset?: number; + caseId?: string; } export interface ITopAddressItemFeedback { diff --git a/src/screens/addresses/otherAddresses/OtherAddressItem.tsx b/src/screens/addresses/otherAddresses/OtherAddressItem.tsx index 211ef1c0..97672cd2 100644 --- a/src/screens/addresses/otherAddresses/OtherAddressItem.tsx +++ b/src/screens/addresses/otherAddresses/OtherAddressItem.tsx @@ -19,6 +19,7 @@ const OtherAddressItem = (props: IOtherAddressItem) => { { diff --git a/src/screens/caseDetails/AllocatedAddressDetails.tsx b/src/screens/caseDetails/AllocatedAddressDetails.tsx index e31fa5fb..47584ad5 100644 --- a/src/screens/caseDetails/AllocatedAddressDetails.tsx +++ b/src/screens/caseDetails/AllocatedAddressDetails.tsx @@ -14,6 +14,8 @@ import { addClickstreamEvent } from '@services/clickstreamEventService'; import React, { useState } from 'react'; import { Linking, StyleSheet, View } from 'react-native'; import OpenMapButtonForAddresses from './OpenMapButtonForAddresses'; +import { RootState } from '@store'; +import { useAppSelector } from '@hooks'; interface IAllocatedAddressDetails { isCasePaused: boolean; @@ -36,7 +38,8 @@ const AllocatedAddressDetails = (props: IAllocatedAddressDetails) => { roadDistance, } = props; const [isModalVisible, setIsModalVisible] = useState(false); - + const caseDetails = useAppSelector((state: RootState) => state?.allCases?.caseDetails[caseId]) || {}; + const isGeolocation = addressStringType === AddressTabType.GEO_LOCATION; const openLocation = () => { @@ -57,7 +60,11 @@ const AllocatedAddressDetails = (props: IAllocatedAddressDetails) => { const handleOpenMapForAddresses = () => { setIsModalVisible(!isModalVisible); - addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, {}); + addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, { + attempted_at_address: caseDetails?.addressReferenceId, + address_rank: caseDetails?.pinRank, + caseId, + }); }; return ( From b01970d7313d48efa713e53e119f60bc9f723e14 Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Wed, 11 Jun 2025 12:07:04 +0530 Subject: [PATCH 2/8] NTP-71625 | Fix event issue of search by geocode --- src/screens/addresses/common/AddressItemHeader.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/screens/addresses/common/AddressItemHeader.tsx b/src/screens/addresses/common/AddressItemHeader.tsx index 1c3622df..ed4e8e50 100644 --- a/src/screens/addresses/common/AddressItemHeader.tsx +++ b/src/screens/addresses/common/AddressItemHeader.tsx @@ -59,6 +59,7 @@ const AddressItemHeader = (props: ITopAddressItemHeader) => { return Linking.openURL(mapUrl); } }; + const handleOpenMapForAddresses = () => { setIsModalVisible(!isModalVisible); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, { From 43aee5c515b84879aed87ef90baec9823fb6c9ce Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Wed, 11 Jun 2025 12:57:53 +0530 Subject: [PATCH 3/8] NTP-71625| null check --- src/screens/caseDetails/AllocatedAddressDetails.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/caseDetails/AllocatedAddressDetails.tsx b/src/screens/caseDetails/AllocatedAddressDetails.tsx index 47584ad5..ad4d8cb1 100644 --- a/src/screens/caseDetails/AllocatedAddressDetails.tsx +++ b/src/screens/caseDetails/AllocatedAddressDetails.tsx @@ -38,7 +38,7 @@ const AllocatedAddressDetails = (props: IAllocatedAddressDetails) => { roadDistance, } = props; const [isModalVisible, setIsModalVisible] = useState(false); - const caseDetails = useAppSelector((state: RootState) => state?.allCases?.caseDetails[caseId]) || {}; + const caseDetails = useAppSelector((state: RootState) => state?.allCases?.caseDetails?.[caseId]) || {}; const isGeolocation = addressStringType === AddressTabType.GEO_LOCATION; From c0952b1f7e5b64ac290059af4b71fc7a836077d5 Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Wed, 11 Jun 2025 15:00:31 +0530 Subject: [PATCH 4/8] NTP-71625| added attributes in clickstreams --- src/screens/MapView/ProfileHeader/index.tsx | 1 + .../addresses/common/AddressItemHeader.tsx | 1 + .../addresses/common/OpenMapOptionsPopUp.tsx | 18 ++++++++++++++---- src/screens/addresses/common/interfaces.ts | 1 + .../caseDetails/AllocatedAddressDetails.tsx | 1 + 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/screens/MapView/ProfileHeader/index.tsx b/src/screens/MapView/ProfileHeader/index.tsx index 633ed7f3..432cc09c 100644 --- a/src/screens/MapView/ProfileHeader/index.tsx +++ b/src/screens/MapView/ProfileHeader/index.tsx @@ -132,6 +132,7 @@ const ProfileHeader: React.FC = ({ latitude={caseDetails?.addressLocation?.latitude} longitude={caseDetails?.addressLocation?.longitude} addressString={caseDetails?.addressString} + caseId={caseId} /> diff --git a/src/screens/addresses/common/AddressItemHeader.tsx b/src/screens/addresses/common/AddressItemHeader.tsx index ed4e8e50..95cd99f3 100644 --- a/src/screens/addresses/common/AddressItemHeader.tsx +++ b/src/screens/addresses/common/AddressItemHeader.tsx @@ -123,6 +123,7 @@ const AddressItemHeader = (props: ITopAddressItemHeader) => { longitude={locationDetails?.longitude} addressString={locationDetails?.addressText} isGeoCoordinatesReliable={locationDetails?.isGeoCoordinatesReliable} + caseId={caseId} /> diff --git a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx index 37639683..44e8374b 100644 --- a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx +++ b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx @@ -10,20 +10,30 @@ import { getGoogleMapUrl, getGoogleMapUrlForAddressText } from '@components/utli import { addClickstreamEvent } from '@services/clickstreamEventService'; import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants'; import Tag, { TagVariant } from '@rn-ui-lib/components/Tag'; +import { useAppSelector } from '@hooks'; const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { - const { latitude, longitude, addressString, isGeoCoordinatesReliable } = props; - + const { latitude, longitude, addressString, isGeoCoordinatesReliable, caseId } = props; + const caseDetails = useAppSelector((state) => state?.allCases?.caseDetails?.[caseId]); + const handleSearchByGeolocation = () => { const mapUrl = getGoogleMapUrl(latitude, longitude); - addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_LAT_LONG_OPTION_CLICKED, {}); + addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_LAT_LONG_OPTION_CLICKED, { + attempted_at_address: caseDetails?.addressReferenceId, + address_rank: caseDetails?.pinRank, + caseId + }); if (!mapUrl) return; return Linking.openURL(mapUrl); }; const handleSearchByAddressString = () => { const mapUrl = getGoogleMapUrlForAddressText(addressString); - addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_SEARCH_ADDRESS_OPTION_CLICKED, {}); + addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_SEARCH_ADDRESS_OPTION_CLICKED, { + attempted_at_address: caseDetails?.addressReferenceId, + address_rank: caseDetails?.pinRank, + caseId + }); if (!mapUrl) return; return Linking.openURL(mapUrl); }; diff --git a/src/screens/addresses/common/interfaces.ts b/src/screens/addresses/common/interfaces.ts index 0ec85246..d45c42ad 100644 --- a/src/screens/addresses/common/interfaces.ts +++ b/src/screens/addresses/common/interfaces.ts @@ -3,4 +3,5 @@ export interface IOpenMapOptionsPopUpProps { longitude: number; addressString: string; isGeoCoordinatesReliable?: boolean; + caseId: string; } diff --git a/src/screens/caseDetails/AllocatedAddressDetails.tsx b/src/screens/caseDetails/AllocatedAddressDetails.tsx index ad4d8cb1..500655a3 100644 --- a/src/screens/caseDetails/AllocatedAddressDetails.tsx +++ b/src/screens/caseDetails/AllocatedAddressDetails.tsx @@ -109,6 +109,7 @@ const AllocatedAddressDetails = (props: IAllocatedAddressDetails) => { latitude={addressLocation?.latitude} longitude={addressLocation?.longitude} addressString={addressString as string} + caseId={caseId} /> From 0aa7fe8f2e814006045cbb30280cf417ca9a5117 Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Wed, 11 Jun 2025 15:42:11 +0530 Subject: [PATCH 5/8] NTP-71625| added attributes in clickstreams --- src/screens/addresses/common/AddressItemHeader.tsx | 2 ++ src/screens/addresses/common/OpenMapOptionsPopUp.tsx | 6 +++--- src/screens/addresses/common/interfaces.ts | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/screens/addresses/common/AddressItemHeader.tsx b/src/screens/addresses/common/AddressItemHeader.tsx index 95cd99f3..c5a72179 100644 --- a/src/screens/addresses/common/AddressItemHeader.tsx +++ b/src/screens/addresses/common/AddressItemHeader.tsx @@ -124,6 +124,8 @@ const AddressItemHeader = (props: ITopAddressItemHeader) => { addressString={locationDetails?.addressText} isGeoCoordinatesReliable={locationDetails?.isGeoCoordinatesReliable} caseId={caseId} + rank={rank} + referenceId={locationDetails?.referenceId} /> diff --git a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx index 44e8374b..1ee453e6 100644 --- a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx +++ b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx @@ -13,7 +13,7 @@ import Tag, { TagVariant } from '@rn-ui-lib/components/Tag'; import { useAppSelector } from '@hooks'; const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { - const { latitude, longitude, addressString, isGeoCoordinatesReliable, caseId } = props; + const { latitude, longitude, addressString, isGeoCoordinatesReliable, caseId, rank, referenceId } = props; const caseDetails = useAppSelector((state) => state?.allCases?.caseDetails?.[caseId]); const handleSearchByGeolocation = () => { @@ -30,8 +30,8 @@ const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { const handleSearchByAddressString = () => { const mapUrl = getGoogleMapUrlForAddressText(addressString); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_SEARCH_ADDRESS_OPTION_CLICKED, { - attempted_at_address: caseDetails?.addressReferenceId, - address_rank: caseDetails?.pinRank, + attempted_at_address: referenceId ? referenceId : caseDetails?.addressReferenceId, + address_rank: rank ? rank: caseDetails?.pinRank, caseId }); if (!mapUrl) return; diff --git a/src/screens/addresses/common/interfaces.ts b/src/screens/addresses/common/interfaces.ts index d45c42ad..9b70006d 100644 --- a/src/screens/addresses/common/interfaces.ts +++ b/src/screens/addresses/common/interfaces.ts @@ -4,4 +4,6 @@ export interface IOpenMapOptionsPopUpProps { addressString: string; isGeoCoordinatesReliable?: boolean; caseId: string; + rank?: number; + referenceId?: string; } From b3403196805b16c1c42f943a2856207baccdc1fc Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Wed, 11 Jun 2025 15:53:46 +0530 Subject: [PATCH 6/8] NTP-71625| added attributes in clickstreams --- src/screens/MapView/ProfileHeader/index.tsx | 2 +- src/screens/addresses/common/OpenMapOptionsPopUp.tsx | 8 ++++---- src/screens/caseDetails/AllocatedAddressDetails.tsx | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/screens/MapView/ProfileHeader/index.tsx b/src/screens/MapView/ProfileHeader/index.tsx index 432cc09c..6d63b94c 100644 --- a/src/screens/MapView/ProfileHeader/index.tsx +++ b/src/screens/MapView/ProfileHeader/index.tsx @@ -66,7 +66,6 @@ const ProfileHeader: React.FC = ({ setIsModalVisible(!isModalVisible); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, { attempted_at_address: caseDetails?.addressReferenceId, - address_rank: caseDetails?.pinRank, caseId, }); }; @@ -133,6 +132,7 @@ const ProfileHeader: React.FC = ({ longitude={caseDetails?.addressLocation?.longitude} addressString={caseDetails?.addressString} caseId={caseId} + referenceId={caseDetails?.addressReferenceId} /> diff --git a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx index 1ee453e6..67e1ac49 100644 --- a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx +++ b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx @@ -19,8 +19,8 @@ const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { const handleSearchByGeolocation = () => { const mapUrl = getGoogleMapUrl(latitude, longitude); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_LAT_LONG_OPTION_CLICKED, { - attempted_at_address: caseDetails?.addressReferenceId, - address_rank: caseDetails?.pinRank, + attempted_at_address: referenceId, + address_rank: rank ? rank: '', caseId }); if (!mapUrl) return; @@ -30,8 +30,8 @@ const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { const handleSearchByAddressString = () => { const mapUrl = getGoogleMapUrlForAddressText(addressString); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_SEARCH_ADDRESS_OPTION_CLICKED, { - attempted_at_address: referenceId ? referenceId : caseDetails?.addressReferenceId, - address_rank: rank ? rank: caseDetails?.pinRank, + attempted_at_address: referenceId, + address_rank: rank ? rank: '', caseId }); if (!mapUrl) return; diff --git a/src/screens/caseDetails/AllocatedAddressDetails.tsx b/src/screens/caseDetails/AllocatedAddressDetails.tsx index 500655a3..985ee5c0 100644 --- a/src/screens/caseDetails/AllocatedAddressDetails.tsx +++ b/src/screens/caseDetails/AllocatedAddressDetails.tsx @@ -62,7 +62,6 @@ const AllocatedAddressDetails = (props: IAllocatedAddressDetails) => { setIsModalVisible(!isModalVisible); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ADDRESS_CARD_DIRECTIONS_CLICKED, { attempted_at_address: caseDetails?.addressReferenceId, - address_rank: caseDetails?.pinRank, caseId, }); }; @@ -110,6 +109,7 @@ const AllocatedAddressDetails = (props: IAllocatedAddressDetails) => { longitude={addressLocation?.longitude} addressString={addressString as string} caseId={caseId} + referenceId={caseDetails?.addressReferenceId} /> From 4226f985cfe057f5d996b6dabe4a967474b8ed03 Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Wed, 11 Jun 2025 15:56:04 +0530 Subject: [PATCH 7/8] NTP-71625| added attributes in clickstreams --- src/screens/addresses/common/OpenMapOptionsPopUp.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx index 67e1ac49..89237e51 100644 --- a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx +++ b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx @@ -10,12 +10,10 @@ import { getGoogleMapUrl, getGoogleMapUrlForAddressText } from '@components/utli import { addClickstreamEvent } from '@services/clickstreamEventService'; import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants'; import Tag, { TagVariant } from '@rn-ui-lib/components/Tag'; -import { useAppSelector } from '@hooks'; + const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { - const { latitude, longitude, addressString, isGeoCoordinatesReliable, caseId, rank, referenceId } = props; - const caseDetails = useAppSelector((state) => state?.allCases?.caseDetails?.[caseId]); - + const { latitude, longitude, addressString, isGeoCoordinatesReliable, caseId, rank = '', referenceId } = props; const handleSearchByGeolocation = () => { const mapUrl = getGoogleMapUrl(latitude, longitude); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_LAT_LONG_OPTION_CLICKED, { @@ -31,7 +29,7 @@ const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { const mapUrl = getGoogleMapUrlForAddressText(addressString); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_SEARCH_ADDRESS_OPTION_CLICKED, { attempted_at_address: referenceId, - address_rank: rank ? rank: '', + address_rank: rank, caseId }); if (!mapUrl) return; From eb185248d64c1f88f4e4bac955a66358cae184cc Mon Sep 17 00:00:00 2001 From: "aishwarya.srivastava" Date: Wed, 11 Jun 2025 15:57:34 +0530 Subject: [PATCH 8/8] NTP-71625| added attributes in clickstreams --- src/screens/addresses/common/OpenMapOptionsPopUp.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx index 89237e51..fc2ae4ab 100644 --- a/src/screens/addresses/common/OpenMapOptionsPopUp.tsx +++ b/src/screens/addresses/common/OpenMapOptionsPopUp.tsx @@ -18,7 +18,7 @@ const OpenMapOptionsPopUp = (props: IOpenMapOptionsPopUpProps) => { const mapUrl = getGoogleMapUrl(latitude, longitude); addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_LAT_LONG_OPTION_CLICKED, { attempted_at_address: referenceId, - address_rank: rank ? rank: '', + address_rank: rank, caseId }); if (!mapUrl) return;