From ece9a9d608d5274492ddfcf93d3d522d955ee74b Mon Sep 17 00:00:00 2001 From: yashmantri Date: Tue, 13 Aug 2024 13:20:22 +0530 Subject: [PATCH 1/6] TP-71465 | Documents reduntant API calls removed --- src/screens/allCases/utils.ts | 12 +++-- .../caseDetails/CollectionCaseDetail.tsx | 20 +++----- src/screens/caseDetails/CustomerProfile.tsx | 48 +++++++------------ src/screens/caseDetails/DocumentTabs.tsx | 2 +- src/screens/caseDetails/PDFFullScreen.tsx | 11 ++--- .../caseDetails/ShareAndDownloadJourney.tsx | 11 ++--- 6 files changed, 42 insertions(+), 62 deletions(-) diff --git a/src/screens/allCases/utils.ts b/src/screens/allCases/utils.ts index 2004f0e8..3e5c4ca3 100644 --- a/src/screens/allCases/utils.ts +++ b/src/screens/allCases/utils.ts @@ -1,5 +1,5 @@ import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants'; -import { getDistanceFromLatLonInKm } from '@components/utlis/commonFunctions'; +import { getDistanceFromLatLonInKm, isFunction } from '@components/utlis/commonFunctions'; import { IGeoLocation } from '@interfaces/addressGeolocation.types'; import { addClickstreamEvent } from '@services/clickstreamEventService'; import { @@ -223,9 +223,12 @@ export const updateNearbyCasesListAndLocation = ( return; }; -export const getCustomerDocuments = async (loanAccountNumber: string) => -{ +export const getCustomerDocuments = async ( + loanAccountNumber: string, + setIsDocumentsLoading?: (val: boolean) => void +) => { if (!loanAccountNumber) return; + isFunction(setIsDocumentsLoading) && setIsDocumentsLoading(true); const url = getApiUrl(ApiKeys.FETCH_CUSTOMER_DOCUMENTS, { loanAccountNumber }); await axiosInstance .get(url) @@ -247,6 +250,9 @@ export const getCustomerDocuments = async (loanAccountNumber: string) => }) .catch((err) => { logError(err); + }) + .finally(() => { + isFunction(setIsDocumentsLoading) && setIsDocumentsLoading(false); }); }; diff --git a/src/screens/caseDetails/CollectionCaseDetail.tsx b/src/screens/caseDetails/CollectionCaseDetail.tsx index 450281ff..bd0009b3 100644 --- a/src/screens/caseDetails/CollectionCaseDetail.tsx +++ b/src/screens/caseDetails/CollectionCaseDetail.tsx @@ -61,17 +61,6 @@ const CollectionCaseDetails: React.FC = (props) => { }; }, [caseId]); - const fetchCustomerDocuments = (loanAccountNumber: string) => { - setIsDocumentsLoading(true); - try { - getCustomerDocuments(loanAccountNumber); - } catch (error: GenericType) { - logError(error as Error); - } finally { - setIsDocumentsLoading(false); - } - }; - useEffect(() => { if (!loanAccountNumber) { return; @@ -83,10 +72,15 @@ const CollectionCaseDetails: React.FC = (props) => { [UnifiedCaseDetailsTypes.FEEDBACKS, UnifiedCaseDetailsTypes.ADDRESS_AND_GEOLOCATIONS] ) ); - fetchCustomerDocuments(loanAccountNumber); } }, [caseDetail]); + // useEffect(() => { + // if (isOnline && loanAccountNumber) { + // fetchCustomerDocuments(loanAccountNumber); + // } + // }, []); + useEffect(() => { addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.AV_CASE_DETAILS_PAGE_LOADED, { caseId, @@ -126,7 +120,7 @@ const CollectionCaseDetails: React.FC = (props) => { - + = (props) => { const { route: { - params: { caseDetail, isDocumentsLoading }, + params: { caseDetail }, }, } = props; const [errorModalImage, setErrorModalImage] = useState(false); @@ -58,10 +57,13 @@ const CustomerProfile: React.FC = (props) => { const [retry, setRetry] = useState(true); const [errorCount, setErrorCount] = useState(0); const [isHighQualityImageLoaded, setIsHighQualityImageLoaded] = useState(false); - const [documentsLoading, setDocumentsLoading] = useState(false); const [showLoadingState, setShowLoadingState] = useState(false); + const [isDocumentsLoading, setIsDocumentsLoading] = React.useState(false); const agentId = useAppSelector((state) => state?.user?.user?.referenceId); + const documentsData = useAppSelector((state) => state?.documentsSlice?.documentsData); + + const loanAccountNumber = caseDetail?.loanAccountNumber; const { startTimer, isActive, clearTimer } = useTimeout(() => { setLoading(false); }, DELAY_FOR_PAINTING_IMAGE); @@ -77,7 +79,6 @@ const CustomerProfile: React.FC = (props) => { false, false ); - const [documentData, setDocumentData] = useState>([]); const getImageURI = () => { if (!isOnline) { @@ -94,29 +95,16 @@ const CustomerProfile: React.FC = (props) => { ); }; + const { mobileNumbers } = useMobileNumbers(caseDetail?.caseReferenceId); + useEffect(() => { - if (caseDetail) { - setDocumentsLoading(true); - const docList: IDocument[] = getDocumentList(caseDetail) || []; - const docPromises: Promise[] = []; - CUSTOMER_PROFILE_DOCS.forEach((documentType) => { - const document = findDocumentByDocumentType(docList, documentType); - if (document) { - const docPromise = getDocumentDetails(document); - if (docPromise) docPromises.push(docPromise); - } - }); - Promise.all(docPromises) - .then((docs: Array) => { - const documents = docs?.filter( - (document: DocumentDetail | null) => document - ) as Array; - setDocumentData(documents); - }) - .catch(() => {}) - .finally(() => setDocumentsLoading(false)); + if (isOnline && loanAccountNumber) { + getCustomerDocuments( + loanAccountNumber, + documentsData?.[loanAccountNumber] ? noop : setIsDocumentsLoading + ); } - }, [caseDetail]); + }, []); const onLoadStart = () => { setLoading(true); diff --git a/src/screens/caseDetails/DocumentTabs.tsx b/src/screens/caseDetails/DocumentTabs.tsx index ae346e57..4bc39853 100644 --- a/src/screens/caseDetails/DocumentTabs.tsx +++ b/src/screens/caseDetails/DocumentTabs.tsx @@ -21,7 +21,7 @@ interface IDocumentTabs { const DocumentTabs: React.FC = ({ lan, caseId, isDocumentsLoading, scrollByOffset }) => { const documentsData = useAppSelector((state) => state?.documentsSlice?.documentsData); - const data = documentsData[lan]; + const data = documentsData?.[lan]; const agentsData = useAppSelector((state) => state?.documentsSlice?.agentDocumentsData); const [DOCUMENTS_TABS, SET_DOCUMENT_TABS] = useState([]); diff --git a/src/screens/caseDetails/PDFFullScreen.tsx b/src/screens/caseDetails/PDFFullScreen.tsx index a361d6e8..8b615757 100644 --- a/src/screens/caseDetails/PDFFullScreen.tsx +++ b/src/screens/caseDetails/PDFFullScreen.tsx @@ -1,9 +1,7 @@ import React, { useEffect, useState } from 'react'; import { ActivityIndicator, - Pressable, SafeAreaView, - ScrollView, StyleSheet, View, useWindowDimensions, @@ -30,12 +28,10 @@ import { NAVI_ACCOUNT_SHARE_CHANNELS, ShareVia } from './constants'; import PDFScreenShareJourneyBottomSheet from './PDFScreenShareJourneyBottomSheet'; import { addClickstreamEvent } from '@services/clickstreamEventService'; import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants'; -import { ITelephoneNumbers } from '@reducers/telephoneNumbersSlice'; -import useMobileNumbers from '@hooks/useMobileNumbers'; import { logError } from '@components/utlis/errorUtils'; import { GenericType } from '@common/GenericTypes'; -import DownloadSolidIcon from '@rn-ui-lib/icons/DownloadSolidIcon'; import PDFDownload from './PDFDownload'; +import { useAppSelector } from '@hooks'; interface IPdfFullScreen { route: { @@ -76,6 +72,9 @@ const PDFFullScreen: React.FC = (props) => { }, } = props; + const mobileNumbers = + useAppSelector((state) => state?.telephoneNumbers?.telephoneNumbers?.[caseId]) || []; + const [isLoading, setIsLoading] = useState(false); const [pdfFilePath, setPdfFilePath] = useState(''); const [error, setError] = useState(false); @@ -109,8 +108,6 @@ const PDFFullScreen: React.FC = (props) => { goBack(); }; - const { mobileNumbers } = useMobileNumbers(caseId); - useEffect(() => { setIsBottomSheetVisible(showShareBottomsheet && !isLoading && !error); }, [showShareBottomsheet, isLoading, error]); diff --git a/src/screens/caseDetails/ShareAndDownloadJourney.tsx b/src/screens/caseDetails/ShareAndDownloadJourney.tsx index 0c995e14..eef6cc03 100644 --- a/src/screens/caseDetails/ShareAndDownloadJourney.tsx +++ b/src/screens/caseDetails/ShareAndDownloadJourney.tsx @@ -50,9 +50,9 @@ export const ShareAndDownloadJourney = ({ isDownloadBottomSheetVisible, setIsDownloadBottomSheetVisible, }: IShareAndDownloadJourney) => { - const { agentId } = useAppSelector((state) => ({ - agentId: state.user.user?.referenceId!, - })); + const agentId = useAppSelector((state) => state.user.user?.referenceId!); + const mobileNumbers = + useAppSelector((state) => state?.telephoneNumbers?.telephoneNumbers?.[caseId]) || []; const { shareablePersonalAccount = false, languagesAvailable = [] } = document || {}; const getBottomSheetHeightCalculation = ( @@ -67,11 +67,6 @@ export const ShareAndDownloadJourney = ({ return calculateBottomSheetHeight(mobileNumbers?.length || 0); }; - - const {mobileNumbers} = useMobileNumbers(caseId); - - - const fetchMultiLingualDocument = async (documentName: string, language: string) => { try{ const multiLingualDoc = await getDocumentInSpecificLanguage(lan, documentName, language).then((res) => { From 4a5e6075b9598167982d75eb006de3eb1d8d323c Mon Sep 17 00:00:00 2001 From: ShriPrakashBajpai Date: Tue, 27 Aug 2024 17:07:30 +0530 Subject: [PATCH 2/6] TP-77706 Docs refactor --- src/screens/Profile/AgentIdCard.tsx | 73 +++------------- src/screens/Profile/AgentIdCardDetails.tsx | 84 +++++++++++++++++++ .../caseDetails/DocumentImageComponent.tsx | 2 - src/screens/caseDetails/DocumentTabs.tsx | 17 ++-- src/screens/caseDetails/PDFFullScreen.tsx | 2 - .../caseDetails/ShareJourneyBottomSheet.tsx | 1 + src/screens/caseDetails/utils/VKYCVideo.tsx | 2 - 7 files changed, 106 insertions(+), 75 deletions(-) create mode 100644 src/screens/Profile/AgentIdCardDetails.tsx diff --git a/src/screens/Profile/AgentIdCard.tsx b/src/screens/Profile/AgentIdCard.tsx index aef83db8..09744fa7 100644 --- a/src/screens/Profile/AgentIdCard.tsx +++ b/src/screens/Profile/AgentIdCard.tsx @@ -19,6 +19,7 @@ import RetryIcon from '@assets/icons/RetryIcon'; import ScreenshotBlocker from '@components/utlis/ScreenshotBlocker'; import { getSelfieDocument } from '@actions/profileActions'; import { setShouldHideTabBar } from '@reducers/commonSlice'; +import AgentIdCardDetails from './AgentIdCardDetails'; const PAGE_TITLE = 'Agent ID card'; @@ -110,9 +111,6 @@ const AgentIdCard = () => { ] },[]) - - - return ( @@ -154,50 +152,15 @@ const AgentIdCard = () => { )) || null} ) : ( - <> - - {isExternalAgency ? ( - <> - - in association with - - - {agencyName} - - - ) : null} - - Valid as of {dateFormat(new Date(todaysDate), BUSINESS_DATE_FORMAT)} - - - - {'Debt Management Executive'} - - - {agentName} - - - - {agentEmail} - - - {' | '} - - - {agentPhone} - - - - {employeeId ? - - {'Emp ID '} - - - {employeeId} - - : null} - - + )} @@ -214,16 +177,8 @@ const styles = StyleSheet.create({ borderWidth: 3, borderColor: COLORS.BORDER.PRIMARY, }, - flexContainer : { - display:'flex', - flexDirection:'row', - }, - greyColor: { - color: COLORS.TEXT.GREY, - }, - darkBlueColor: { - color: COLORS.TEXT.DARK_BLUE, - }, + + lineLoader: { borderRadius: 20, }, @@ -233,10 +188,6 @@ const styles = StyleSheet.create({ mt70: { marginTop: 70, }, - avatarMargin: { - alignItems: 'center', - marginTop: 310, - }, retryContainer: { marginTop: 30, }, diff --git a/src/screens/Profile/AgentIdCardDetails.tsx b/src/screens/Profile/AgentIdCardDetails.tsx new file mode 100644 index 00000000..317ac4a8 --- /dev/null +++ b/src/screens/Profile/AgentIdCardDetails.tsx @@ -0,0 +1,84 @@ +import { COLORS } from '@rn-ui-lib/colors'; +import Heading from '@rn-ui-lib/components/Heading'; +import Text from '@rn-ui-lib/components/Text'; +import NaviLogoWithTextIcon from '@rn-ui-lib/icons/NaviLogoWithTextIcon'; +import { GenericStyles } from '@rn-ui-lib/styles'; +import { BUSINESS_DATE_FORMAT, dateFormat } from '@rn-ui-lib/utils/dates'; +import { View } from 'react-native'; +import { StyleSheet } from 'react-native'; + +interface IAgentCardDetails { + agentName: string; + agentEmail?: string; + agentPhone?: string; + employeeId: string; + isExternalAgency: boolean; + agencyName: string; + todaysDate: Date; +} + +const AgentIdCardDetails = ({ + agentName = '', + agentEmail = '', + agentPhone = '', + employeeId = '', + agencyName = '', + isExternalAgency, + todaysDate, +}: IAgentCardDetails) => { + return ( + <> + + {isExternalAgency ? ( + <> + + in association with + + + {agencyName} + + + ) : null} + + Valid as of {dateFormat(new Date(todaysDate), BUSINESS_DATE_FORMAT)} + + + {'Debt Management Executive'} + + {agentName} + + + {agentEmail} + {' | '} + {agentPhone} + + + {employeeId ? ( + + {'Emp ID '} + {employeeId} + + ) : null} + + + ); +}; + +export default AgentIdCardDetails; + +const styles = StyleSheet.create({ + flexContainer: { + display: 'flex', + flexDirection: 'row', + }, + greyColor: { + color: COLORS.TEXT.GREY, + }, + darkBlueColor: { + color: COLORS.TEXT.DARK_BLUE, + }, + avatarMargin: { + alignItems: 'center', + marginTop: 310, + }, +}); diff --git a/src/screens/caseDetails/DocumentImageComponent.tsx b/src/screens/caseDetails/DocumentImageComponent.tsx index c1f4d4d3..02a93737 100644 --- a/src/screens/caseDetails/DocumentImageComponent.tsx +++ b/src/screens/caseDetails/DocumentImageComponent.tsx @@ -57,8 +57,6 @@ const DocumentImageComponent = (props: DocumentImageComponentProps) => { }); }; - useS3UrlCheck(uri, documentRefId, caseId, caseType, unsignedUri, setImageUrl, setIsValidating); - return ( <> diff --git a/src/screens/caseDetails/DocumentTabs.tsx b/src/screens/caseDetails/DocumentTabs.tsx index 4bc39853..6c57c405 100644 --- a/src/screens/caseDetails/DocumentTabs.tsx +++ b/src/screens/caseDetails/DocumentTabs.tsx @@ -9,6 +9,7 @@ import { ActivityIndicator, StyleSheet } from 'react-native'; import { COLORS } from '@rn-ui-lib/colors'; import { addClickstreamEvent } from '@services/clickstreamEventService'; import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants'; +import { AGENT_TAB_KEY, AGENT_TAB_NAME } from './constants'; interface IDocumentTabs { @@ -24,9 +25,9 @@ const DocumentTabs: React.FC = ({ lan, caseId, isDocumentsLoading const data = documentsData?.[lan]; const agentsData = useAppSelector((state) => state?.documentsSlice?.agentDocumentsData); - const [DOCUMENTS_TABS, SET_DOCUMENT_TABS] = useState([]); + const [documentTabs, setDocumentTabs] = useState([]); const [documentsList, setDocumentsList] = useState([]); - const [selectedTab, setSelectedTab] = useState(DOCUMENTS_TABS?.[0]?.key || ''); + const [selectedTab, setSelectedTab] = useState(documentTabs?.[0]?.key || ''); useEffect(() => { const docTabs: Tab[] = []; @@ -50,10 +51,10 @@ const DocumentTabs: React.FC = ({ lan, caseId, isDocumentsLoading agentsData && docTabs.push({ - key: 'AGENT', - label: 'Agent', + key: AGENT_TAB_KEY, + label: AGENT_TAB_NAME, }); - SET_DOCUMENT_TABS(docTabs); + setDocumentTabs(docTabs); if (agentsData) { agentsData?.forEach((doc: IDocumentItem) => { @@ -64,8 +65,8 @@ const DocumentTabs: React.FC = ({ lan, caseId, isDocumentsLoading }, [data, agentsData]); useEffect(() => { - setSelectedTab(DOCUMENTS_TABS?.[0]?.key || ''); - }, [DOCUMENTS_TABS]); + setSelectedTab(documentTabs?.[0]?.key || ''); + }, [documentTabs]); const handleTabChange = (tabKey: string) => { addClickstreamEvent( @@ -89,7 +90,7 @@ const DocumentTabs: React.FC = ({ lan, caseId, isDocumentsLoading ) : ( <> = (props) => { return calculateBottomSheetHeight(mobileNumbers?.length || 0); }; - useS3UrlCheck(pdfUri, referenceId, caseId, caseType, unSignedUri, setPdfUrl, setIsValidating); - useEffect(() => { addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_PDF_VIEWER_OPENED, { agentId: referenceId, diff --git a/src/screens/caseDetails/ShareJourneyBottomSheet.tsx b/src/screens/caseDetails/ShareJourneyBottomSheet.tsx index 864cee15..10dffd93 100644 --- a/src/screens/caseDetails/ShareJourneyBottomSheet.tsx +++ b/src/screens/caseDetails/ShareJourneyBottomSheet.tsx @@ -121,6 +121,7 @@ export const ShareJourneyBottomSheet = ({ lan: loanAccountNumber, agentId: agentId, language: phoneNumberRefId, + document: documentKey, }) handleSharePDF(document, ShareVia.NAVI_ACCOUNT, phoneNumberRefId); resetBottomSheet(); diff --git a/src/screens/caseDetails/utils/VKYCVideo.tsx b/src/screens/caseDetails/utils/VKYCVideo.tsx index 2b8855cd..db9fdf74 100644 --- a/src/screens/caseDetails/utils/VKYCVideo.tsx +++ b/src/screens/caseDetails/utils/VKYCVideo.tsx @@ -7,8 +7,6 @@ const VKYCVideo = ({ document, caseId, caseType }: any) => { const { uri, unsignedUri, documentRefId } = document; const [videoUrl, setVideoUrl] = useState(uri); - useS3UrlCheck(uri, documentRefId, caseId, caseType, unsignedUri, setVideoUrl); - return ( Date: Tue, 27 Aug 2024 17:12:27 +0530 Subject: [PATCH 3/6] TP-77706 Docs refactor --- src/screens/caseDetails/CollectionCaseDetail.tsx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/screens/caseDetails/CollectionCaseDetail.tsx b/src/screens/caseDetails/CollectionCaseDetail.tsx index bd0009b3..c658a3a4 100644 --- a/src/screens/caseDetails/CollectionCaseDetail.tsx +++ b/src/screens/caseDetails/CollectionCaseDetail.tsx @@ -75,12 +75,6 @@ const CollectionCaseDetails: React.FC = (props) => { } }, [caseDetail]); - // useEffect(() => { - // if (isOnline && loanAccountNumber) { - // fetchCustomerDocuments(loanAccountNumber); - // } - // }, []); - useEffect(() => { addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.AV_CASE_DETAILS_PAGE_LOADED, { caseId, From 4ed379a624f92b3549e8da114ecd8e4fc4a4f09f Mon Sep 17 00:00:00 2001 From: ShriPrakashBajpai Date: Thu, 29 Aug 2024 14:05:14 +0530 Subject: [PATCH 4/6] TP-77706-Docs-fix --- src/components/utlis/commonFunctions.ts | 5 +++ src/screens/Profile/AgentIdCard.tsx | 38 +++++----------------- src/screens/Profile/AgentIdCardDetails.tsx | 24 +++++++------- 3 files changed, 25 insertions(+), 42 deletions(-) diff --git a/src/components/utlis/commonFunctions.ts b/src/components/utlis/commonFunctions.ts index 01745dee..a33170b8 100644 --- a/src/components/utlis/commonFunctions.ts +++ b/src/components/utlis/commonFunctions.ts @@ -14,6 +14,7 @@ import { getPrefixBase64Image, LocalStorageKeys, MimeType, + NAVI_AGENCY_CODE, } from '../../common/Constants'; import NetInfo from '@react-native-community/netinfo'; import Clipboard from '@react-native-clipboard/clipboard'; @@ -587,3 +588,7 @@ export const handleDownloadPdfDocument = async (document: IDocumentItem | IDocum logError(error as Error); }); }; + +export const checkExternalAgency = (agencyName: string, agencyCode: string) => { + return (agencyName && agencyCode !== NAVI_AGENCY_CODE); +} \ No newline at end of file diff --git a/src/screens/Profile/AgentIdCard.tsx b/src/screens/Profile/AgentIdCard.tsx index 09744fa7..333a4e68 100644 --- a/src/screens/Profile/AgentIdCard.tsx +++ b/src/screens/Profile/AgentIdCard.tsx @@ -1,14 +1,10 @@ import { Pressable, SafeAreaView, StyleSheet, View } from 'react-native'; import React, { useEffect, useMemo, useState } from 'react'; -import NaviLogoWithTextIcon from '../../../RN-UI-LIB/src/Icons/NaviLogoWithTextIcon'; import Avatar from '../../../RN-UI-LIB/src/components/Avatar'; import { GenericStyles } from '../../../RN-UI-LIB/src/styles'; import Text from '../../../RN-UI-LIB/src/components/Text'; -import Heading from '../../../RN-UI-LIB/src/components/Heading'; import { COLORS } from '../../../RN-UI-LIB/src/styles/colors'; import { useAppDispatch, useAppSelector } from '../../hooks'; -import { BUSINESS_DATE_FORMAT, dateFormat } from '../../../RN-UI-LIB/src/utlis/dates'; -import { NAVI_AGENCY_CODE } from '../../common/Constants'; import Layout from '@screens/layout/Layout'; import NavigationHeader from '@rn-ui-lib/components/NavigationHeader'; import { goBack, popToScreen } from '@components/utlis/navigationUtlis'; @@ -20,6 +16,7 @@ import ScreenshotBlocker from '@components/utlis/ScreenshotBlocker'; import { getSelfieDocument } from '@actions/profileActions'; import { setShouldHideTabBar } from '@reducers/commonSlice'; import AgentIdCardDetails from './AgentIdCardDetails'; +import { checkExternalAgency } from '@components/utlis/commonFunctions'; const PAGE_TITLE = 'Agent ID card'; @@ -73,32 +70,19 @@ const AgentIdCard = () => { - const { - originalImageUri, - optimizedImageUri, - agentName, - agentPhone, - agencyName, - agentEmail, - agencyCode, - employeeId, - } = useAppSelector((state) => ({ - originalImageUri: state.profile.originalImageUri, - agentName: state.user.user?.name!!, - agentPhone: state.user.user?.phoneNumber, - agencyName: state.profile.agencyName, - agentEmail: state.user.user?.emailId, - agencyCode: state.profile.agencyCode, - employeeId: state.user?.employeeId, - optimizedImageUri: state.profile.optimizedImageUri, - })); + const originalImageUri = useAppSelector((state) => state.profile.originalImageUri); + const optimizedImageUri = useAppSelector((state) => state.profile.optimizedImageUri); + const agentName = useAppSelector((state) => state.user.user?.name!!); + const agencyName = useAppSelector((state) => state.profile.agencyName); + const agencyCode = useAppSelector((state) => state.profile.agencyCode); + const showRetry = useMemo(() => { return !originalImageUri && !optimizedImageUri; }, [optimizedImageUri, originalImageUri]); - const isExternalAgency = (agencyName && agencyCode !== NAVI_AGENCY_CODE); + const isExternalAgency = useMemo(() => checkExternalAgency(agencyName, agencyCode), [agencyName, agencyCode]); const loaderConf = useMemo(()=>{ return [ @@ -153,12 +137,6 @@ const AgentIdCard = () => { ) : ( )} diff --git a/src/screens/Profile/AgentIdCardDetails.tsx b/src/screens/Profile/AgentIdCardDetails.tsx index 317ac4a8..437017be 100644 --- a/src/screens/Profile/AgentIdCardDetails.tsx +++ b/src/screens/Profile/AgentIdCardDetails.tsx @@ -1,31 +1,31 @@ +import { checkExternalAgency } from '@components/utlis/commonFunctions'; +import { useAppSelector } from '@hooks'; import { COLORS } from '@rn-ui-lib/colors'; import Heading from '@rn-ui-lib/components/Heading'; import Text from '@rn-ui-lib/components/Text'; import NaviLogoWithTextIcon from '@rn-ui-lib/icons/NaviLogoWithTextIcon'; import { GenericStyles } from '@rn-ui-lib/styles'; import { BUSINESS_DATE_FORMAT, dateFormat } from '@rn-ui-lib/utils/dates'; +import { useMemo } from 'react'; import { View } from 'react-native'; import { StyleSheet } from 'react-native'; interface IAgentCardDetails { - agentName: string; - agentEmail?: string; - agentPhone?: string; - employeeId: string; - isExternalAgency: boolean; - agencyName: string; todaysDate: Date; } const AgentIdCardDetails = ({ - agentName = '', - agentEmail = '', - agentPhone = '', - employeeId = '', - agencyName = '', - isExternalAgency, todaysDate, }: IAgentCardDetails) => { + + const agentName = useAppSelector((state) => state.user.user?.name!!); + const agentPhone = useAppSelector((state) => state.user.user?.phoneNumber); + const agencyName = useAppSelector((state) => state.profile.agencyName); + const agentEmail = useAppSelector((state) => state.user.user?.emailId); + const agencyCode = useAppSelector((state) => state.profile.agencyCode); + const employeeId = useAppSelector((state) => state.user?.employeeId); + const isExternalAgency = useMemo(() => checkExternalAgency(agencyName, agencyCode), [agencyName, agencyCode]); + return ( <> From fdbdeda8dcd722c75eecece524730b9db4614dad Mon Sep 17 00:00:00 2001 From: ShriPrakashBajpai Date: Thu, 29 Aug 2024 17:15:59 +0530 Subject: [PATCH 5/6] TP-77706 Docs fix --- src/screens/Profile/AgentIdCardDetails.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/screens/Profile/AgentIdCardDetails.tsx b/src/screens/Profile/AgentIdCardDetails.tsx index 437017be..2eb01e1a 100644 --- a/src/screens/Profile/AgentIdCardDetails.tsx +++ b/src/screens/Profile/AgentIdCardDetails.tsx @@ -20,9 +20,9 @@ const AgentIdCardDetails = ({ const agentName = useAppSelector((state) => state.user.user?.name!!); const agentPhone = useAppSelector((state) => state.user.user?.phoneNumber); - const agencyName = useAppSelector((state) => state.profile.agencyName); + const agencyName = useAppSelector((state) => state.profile?.agencyName); const agentEmail = useAppSelector((state) => state.user.user?.emailId); - const agencyCode = useAppSelector((state) => state.profile.agencyCode); + const agencyCode = useAppSelector((state) => state.profile?.agencyCode); const employeeId = useAppSelector((state) => state.user?.employeeId); const isExternalAgency = useMemo(() => checkExternalAgency(agencyName, agencyCode), [agencyName, agencyCode]); From 79fcb0168342e33b8286689d1f6eb892fbe8c345 Mon Sep 17 00:00:00 2001 From: ShriPrakashBajpai Date: Thu, 29 Aug 2024 17:17:36 +0530 Subject: [PATCH 6/6] TP-77706 Docs fix --- src/screens/Profile/AgentIdCard.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/screens/Profile/AgentIdCard.tsx b/src/screens/Profile/AgentIdCard.tsx index 333a4e68..632e5919 100644 --- a/src/screens/Profile/AgentIdCard.tsx +++ b/src/screens/Profile/AgentIdCard.tsx @@ -73,8 +73,8 @@ const AgentIdCard = () => { const originalImageUri = useAppSelector((state) => state.profile.originalImageUri); const optimizedImageUri = useAppSelector((state) => state.profile.optimizedImageUri); const agentName = useAppSelector((state) => state.user.user?.name!!); - const agencyName = useAppSelector((state) => state.profile.agencyName); - const agencyCode = useAppSelector((state) => state.profile.agencyCode); + const agencyName = useAppSelector((state) => state.profile?.agencyName); + const agencyCode = useAppSelector((state) => state.profile?.agencyCode);