diff --git a/src/action/dataActions.ts b/src/action/dataActions.ts index 74ac6864..d9770d85 100644 --- a/src/action/dataActions.ts +++ b/src/action/dataActions.ts @@ -6,7 +6,6 @@ import axiosInstance, { isAxiosError, } from '../components/utlis/apiHelper'; import { navigateToScreen } from '../components/utlis/navigationUtlis'; -import OfflineImageDAO from '../wmDB/dao/OfflineImageDAO'; import { resetSelectedTodoList, resetTodoList, diff --git a/src/components/form/components/imageUpload/ImageUploadV2.tsx b/src/components/form/components/imageUpload/ImageUploadV2.tsx index 0b95c9bf..8f7c02fc 100644 --- a/src/components/form/components/imageUpload/ImageUploadV2.tsx +++ b/src/components/form/components/imageUpload/ImageUploadV2.tsx @@ -10,7 +10,6 @@ import { useAppDispatch, useAppSelector } from '../../../../hooks'; import { RootState } from '../../../../store/store'; import { AnswerType } from '../../interface'; import ErrorMessage from '../ErrorMessage'; -import OfflineImageDAO from '../../../../wmDB/dao/OfflineImageDAO'; import { CLICKSTREAM_EVENT_NAMES, PrefixJpegBase64Image } from '../../../../common/Constants'; import { addClickstreamEvent, ClickstreamDesc } from '../../../../services/clickstreamEventService'; import { isQuestionMandatory, validateInput } from '../../services/validation.service'; diff --git a/src/components/form/index.tsx b/src/components/form/index.tsx index 1bd14684..a8e46e27 100644 --- a/src/components/form/index.tsx +++ b/src/components/form/index.tsx @@ -307,6 +307,14 @@ const Widget: React.FC = (props) => { unSyncedCase, nudgeBottomSheetDetails?.showNudgeBottomSheet ); + if(!transformedPayload?.data?.answers) { + toast({ + type: 'error', + text1: ToastMessages.FEEDBACK_IMAGE_NOT_FOUND, + }); + onErrorSubmit({}, transformedPayload) + return; + } dispatch( syncCaseDetail(transformedPayload, { onSuccessCB: (apiCaseData, interactionId: string) => diff --git a/src/screens/caseDetails/interactionsHandler.tsx b/src/screens/caseDetails/interactionsHandler.tsx index bfb5cf5b..5669f1bc 100644 --- a/src/screens/caseDetails/interactionsHandler.tsx +++ b/src/screens/caseDetails/interactionsHandler.tsx @@ -69,6 +69,9 @@ const interactionsHandler = () => { if (caseItem?.caseType === CaseAllocationType.COLLECTION_CASE) { modifiedCaseItem = await getTransformedCollectionCaseItem(caseItem, true); } + if (!modifiedCaseItem?.data?.answers) { + return; + } dispatch( syncCaseDetail(modifiedCaseItem, { onSuccessCB: (_, interactionId) => handleSuccessSubmit(caseKey, interactionId, caseItem.caseId), diff --git a/src/services/casePayload.transformer.ts b/src/services/casePayload.transformer.ts index 0631de29..39511b2c 100644 --- a/src/services/casePayload.transformer.ts +++ b/src/services/casePayload.transformer.ts @@ -1,6 +1,5 @@ import { CaseDetail } from './../screens/caseDetails/interface'; import { AnswerType } from '../components/form/interface'; -import OfflineImageDAO from '../wmDB/dao/OfflineImageDAO'; import { IQuestionContextOutput } from '../screens/allCases/interface'; import Geolocation from 'react-native-geolocation-service'; import store from '@store'; @@ -40,8 +39,9 @@ const MAX_HEIGHT = 500; export const extractQuestionContext = async ( answer: Answer, caseReferenceId: string -): Promise => { +): Promise => { const questionContexts: IQuestionContextOutput[] = []; + let isBase64ImageAvailable = true; const docsData = store?.getState()?.feedbackImages?.intermediateDocsToBeUploaded?.[caseReferenceId]?.documents; const { widgetContext } = answer; @@ -88,6 +88,7 @@ export const extractQuestionContext = async ( answer: `data:image/jpeg;base64,${base64Image}`, }; } catch (error) { + isBase64ImageAvailable = false; addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_FEEDBACK_IMAGE_NOT_FOUND, { error }); } } @@ -99,6 +100,7 @@ export const extractQuestionContext = async ( } } + if (!isBase64ImageAvailable) return null; return questionContexts; }; @@ -114,11 +116,6 @@ export const getImageHeightWrtAspectRatio = ( return requiredImageWidth * aspectRatio; }; -export const getBase64ImageFromOfflineDb = async (imageId: string) => { - let imageList = await OfflineImageDAO.getImage(imageId); - return imageList?.[0]?.imageData; -}; - export interface IGetTransformedCaseItem extends CaseDetail { answer: any; caseId: string;