diff --git a/src/action/addressGeolocationAction.ts b/src/action/addressGeolocationAction.ts index 34e5a45c..b8f3b028 100644 --- a/src/action/addressGeolocationAction.ts +++ b/src/action/addressGeolocationAction.ts @@ -75,12 +75,15 @@ export const getUngroupedAddress = .get(url) .then((response) => { if (response.status === API_STATUS_CODE.OK) { - const ungroupedAddressesWithFeedbacks = { - ungroupedAddresses: response?.data?.ungroupedAddresses || [], - ungroupedAddressFeedbacks: response?.data?.addressFeedbacks || [], + const data = { loanAccountNumber, + ungroupedAddresses: response.data?.ungroupedAddresses, + ungroupedAddressFeedbacks: response.data?.addressFeedbacks || [], }; - dispatch(setUngroupedAddresses(ungroupedAddressesWithFeedbacks)); + if (!includeFeedbacks) { + delete response.data?.addressFeedbacks; + } + dispatch(setUngroupedAddresses(data)); } }) .catch((err) => { diff --git a/src/action/caseApiActions.ts b/src/action/caseApiActions.ts index 4f337d88..b622a906 100644 --- a/src/action/caseApiActions.ts +++ b/src/action/caseApiActions.ts @@ -52,7 +52,16 @@ export const getAddressesAndGeolocations = axiosInstance .get(url) .then((res) => { - dispatch(setAddresses({ loanAccountNumber, groupedAddressesAndGeoLocations: res.data })); + const { groupedAddressesAndGeoLocations, addressFeedbacks } = res.data; + const data = { + loanAccountNumber, + groupedAddressesAndGeoLocations, + addressFeedbacks: addressFeedbacks || [], + }; + if (!includeFeedbacks) { + delete data.addressFeedbacks; + } + dispatch(setAddresses(data)); }) .catch((err) => { logError(err as Error, 'Error fetching addresses and geolocations data'); diff --git a/src/screens/caseDetails/CollectionCaseDetail.tsx b/src/screens/caseDetails/CollectionCaseDetail.tsx index 8bc652c5..45245149 100644 --- a/src/screens/caseDetails/CollectionCaseDetail.tsx +++ b/src/screens/caseDetails/CollectionCaseDetail.tsx @@ -59,7 +59,7 @@ const CollectionCaseDetails: React.FC = (props) => { useEffect(() => { if (caseId) dispatch(setSelectedCaseId(caseId)); - + dispatch(getFeedbackHistory(loanAccountNumber)); return () => { dispatch(setSelectedCaseId('')); }; @@ -69,7 +69,6 @@ const CollectionCaseDetails: React.FC = (props) => { React.useCallback(() => { if (loanAccountNumber) { dispatch(getAddressesAndGeolocations(loanAccountNumber)); - dispatch(getFeedbackHistory(loanAccountNumber)); dispatch(getUngroupedAddress(loanAccountNumber)); } }, [loanAccountNumber]) diff --git a/src/screens/caseDetails/FeedbackDetailsSection.tsx b/src/screens/caseDetails/FeedbackDetailsSection.tsx index fe4ab5c6..6e245421 100644 --- a/src/screens/caseDetails/FeedbackDetailsSection.tsx +++ b/src/screens/caseDetails/FeedbackDetailsSection.tsx @@ -24,6 +24,9 @@ const FeedbackDetailsSection = ({ caseId }: IFeedbackDetailsSection) => { const feedbackList = useAppSelector( (state: RootState) => state.feedbackHistory?.[loanAccountNumber as string]?.data || [] ); + const feedbackListLoading = useAppSelector( + (state: RootState) => state.feedbackHistory?.[loanAccountNumber as string]?.isLoading + ); const allCasesDetails = useAppSelector((state: RootState) => state.allCases.caseDetails); const openAllFeedbacksHandler = () => { @@ -85,6 +88,7 @@ const FeedbackDetailsSection = ({ caseId }: IFeedbackDetailsSection) => { feedbackList={[...getUnSyncedFeedback(), ...feedbackList]?.splice(0, 5)} loanAccountNumber={loanAccountNumber} caseId={caseId} + loading={feedbackListLoading} /> diff --git a/src/screens/caseDetails/feedback/FeedbackListContainer.tsx b/src/screens/caseDetails/feedback/FeedbackListContainer.tsx index 6188c918..62348835 100644 --- a/src/screens/caseDetails/feedback/FeedbackListContainer.tsx +++ b/src/screens/caseDetails/feedback/FeedbackListContainer.tsx @@ -20,6 +20,7 @@ interface IFeedbackListContainer { loanAccountNumber: string; feedbackList: (IFeedback | IUnSyncedFeedbackItem)[]; caseId: string; + loading: boolean; } interface IOfflineFeedbackListContainer { @@ -69,6 +70,7 @@ const FeedbackListContainer: React.FC = ({ loanAccountNumber, feedbackList, caseId, + loading, }) => { const [retryBtnCount, setRetryBtnCount] = useState(0); @@ -94,7 +96,7 @@ const FeedbackListContainer: React.FC = ({ } return ( - }> + }> {feedbackList.map((feedbackItem: IFeedback | IUnSyncedFeedbackItem, idx: number) => ( { return ( {Array.from({ length: arrayLength }).map((_, idx) => ( - + { @@ -33,13 +33,21 @@ const interactionsHandler = () => { const inProgressCaseIds = useRef([]); - const handleSuccessSubmit = (caseKey: string, interactionId: string, caseId: string) => { + const handleSuccessSubmit = ( + caseKey: string, + interactionId: string, + caseId: string, + loanAccountNumber: string + ) => { const docs = docsToBeUploaded?.[caseKey]?.documents; if (!docs) { return; } dispatch(setDocumentInteractionId({ caseKey, interactionId, caseId })); dispatch(uploadImages(caseKey, docs, interactionId)); + if (loanAccountNumber) { + dispatch(getFeedbackHistory(loanAccountNumber)); + } }; useEffect(() => { @@ -74,7 +82,13 @@ const interactionsHandler = () => { } dispatch( syncCaseDetail(modifiedCaseItem, { - onSuccessCB: (_, interactionId) => handleSuccessSubmit(caseKey, interactionId, caseItem.caseId), + onSuccessCB: (_, interactionId) => + handleSuccessSubmit( + caseKey, + interactionId, + caseItem.caseId, + caseItem.loanAccountNumber + ), }) ); }