From 11fcce0f682c753ee247169d247fd1c4deaa2502 Mon Sep 17 00:00:00 2001 From: Mantri Ramkishor Date: Thu, 13 Jun 2024 12:33:57 +0530 Subject: [PATCH] Revert "TP-66615 | Agent Id Card V1" --- RN-UI-LIB | 2 +- android/app/build.gradle | 4 +- package.json | 4 +- src/action/profileActions.ts | 80 ++++++--------- src/common/BlockerScreen.tsx | 14 +-- src/common/Constants.ts | 38 ------- .../useFCM/notificationHelperFunctions.ts | 34 ------- src/hooks/useFetchDocument.ts | 4 +- src/reducer/profileSlice.ts | 32 ++---- src/reducer/userSlice.ts | 16 ++- src/screens/AgentIdCard/IdCard/IdCard.tsx | 96 ------------------ .../AgentIdCard/IdCard/IdCardCreationFlow.tsx | 99 ------------------- .../AgentIdCard/IdCard/ReviewIdCard.tsx | 90 ----------------- .../IdCardStatus/IdCardApprovalPending.tsx | 79 --------------- .../IdCardStatus/IdCardApproved.tsx | 90 ----------------- .../IdCardStatus/IdCardRejected.tsx | 76 -------------- src/screens/AgentIdCard/index.tsx | 58 ----------- src/screens/AgentIdCard/utils/index.tsx | 27 ----- src/screens/Profile/AgentIdCard.tsx | 3 - src/screens/Profile/ProfileStack.tsx | 70 ++++++++----- src/screens/Profile/ViewIdCardCta.tsx | 7 +- src/screens/Profile/index.tsx | 21 +--- src/screens/allCases/CaseItemAvatar.tsx | 6 +- src/screens/allCases/index.tsx | 9 +- src/screens/auth/AuthRouter.tsx | 19 +--- src/screens/auth/ProtectedRouter.tsx | 4 +- 26 files changed, 111 insertions(+), 871 deletions(-) delete mode 100644 src/screens/AgentIdCard/IdCard/IdCard.tsx delete mode 100644 src/screens/AgentIdCard/IdCard/IdCardCreationFlow.tsx delete mode 100644 src/screens/AgentIdCard/IdCard/ReviewIdCard.tsx delete mode 100644 src/screens/AgentIdCard/IdCardStatus/IdCardApprovalPending.tsx delete mode 100644 src/screens/AgentIdCard/IdCardStatus/IdCardApproved.tsx delete mode 100644 src/screens/AgentIdCard/IdCardStatus/IdCardRejected.tsx delete mode 100644 src/screens/AgentIdCard/index.tsx delete mode 100644 src/screens/AgentIdCard/utils/index.tsx diff --git a/RN-UI-LIB b/RN-UI-LIB index f8795144..15c42e02 160000 --- a/RN-UI-LIB +++ b/RN-UI-LIB @@ -1 +1 @@ -Subproject commit f8795144b2fabd54d75cb5135caf7b0897d5b63f +Subproject commit 15c42e0262781d5e81ea09d7e066acc4e903df99 diff --git a/android/app/build.gradle b/android/app/build.gradle index 99dec776..1e1b7541 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -134,8 +134,8 @@ def reactNativeArchitectures() { return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] } -def VERSION_CODE = 165 -def VERSION_NAME = "2.10.11" +def VERSION_CODE = 164 +def VERSION_NAME = "2.10.10" android { ndkVersion rootProject.ext.ndkVersion diff --git a/package.json b/package.json index f28a8ee1..632c8fdb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "AV_APP", - "version": "2.10.11", - "buildNumber": "165", + "version": "2.10.10", + "buildNumber": "164", "private": true, "scripts": { "android:dev": "yarn move:dev && react-native run-android", diff --git a/src/action/profileActions.ts b/src/action/profileActions.ts index 7ce5bd06..89e43bc2 100644 --- a/src/action/profileActions.ts +++ b/src/action/profileActions.ts @@ -1,12 +1,9 @@ -import { isFunction } from '@components/utlis/commonFunctions'; import { toast } from '../../RN-UI-LIB/src/components/toast'; import axiosInstance, { ApiKeys, getApiUrl } from '../components/utlis/apiHelper'; import { logError } from '../components/utlis/errorUtils'; import { ImageApprovalStatus, setApprovalStatus, - setImageUri, - setIsLoading, setIsUploadingImage, setOriginalImageDetails, } from '../reducer/profileSlice'; @@ -31,55 +28,42 @@ export const uploadImageId = (agentId: string, uri: string) => (dispatch: AppDis .then(() => { toast({ type: 'info', text1: ToastMessages.IMAGE_UPLOAD_SUCCESS }); dispatch(setApprovalStatus(ImageApprovalStatus.PENDING)); - dispatch(setImageUri('')); }) .finally(() => { dispatch(setIsUploadingImage(false)); }); }; -export const getSelfieDocument = - (setLoading = false, callbackFn?: any) => - (dispatch: AppDispatch) => { - const url = getApiUrl(ApiKeys.GET_DOCUMENTS, {}, { type: 'SELFIE' }); - if (setLoading) dispatch(setIsLoading(true)); - axiosInstance - .get(url) - .then((res) => { +export const getSelfieDocument = () => (dispatch: AppDispatch) => { + const url = getApiUrl(ApiKeys.GET_DOCUMENTS, {}, { type: 'SELFIE' }); + axiosInstance + .get(url) + .then((res) => { + if (res.data?.documents?.[0]) { const { documents, agencyName, agencyCode } = res.data; - if (res.data?.documents?.[0]) { - const { originalDocumentUri, optimizedDocumentUri, approvalStatus, comment } = - documents?.[0] || {}; - dispatch( - setOriginalImageDetails({ - originalImageUri: originalDocumentUri || '', - approvalStatus: approvalStatus || ImageApprovalStatus.NOT_INITIATED, - agencyName: agencyName || '', - agencyCode: agencyCode || '', - optimizedImageUri: optimizedDocumentUri || '', - comment: comment || '', - }) - ); - - if (approvalStatus === ImageApprovalStatus.APPROVED && isFunction(callbackFn)) { - callbackFn(); - } - } else { - dispatch( - setOriginalImageDetails({ - originalImageUri: '', - agencyName: agencyName || '', - agencyCode: agencyCode || '', - comment: '', - approvalStatus: ImageApprovalStatus.NOT_INITIATED, - }) - ); - } - }) - .catch((err) => { - logError(err as Error, 'Error while fetching selfie document'); - }) - .finally(() => { - if (setLoading) dispatch(setIsLoading(false)); - }); - }; + const { originalDocumentUri, optimizedDocumentUri, updatedAt, approvalStatus } = + documents?.[0] || {}; + dispatch( + setOriginalImageDetails({ + originalImageUri: originalDocumentUri || '', + validationDate: updatedAt || '', + approvalStatus: approvalStatus || ImageApprovalStatus.REJECTED, + agencyName: agencyName || '', + agencyCode: agencyCode || '', + optimizedImageUri: optimizedDocumentUri || '', + }) + ); + } else { + dispatch( + setOriginalImageDetails({ + originalImageUri: '', + validationDate: '', + approvalStatus: ImageApprovalStatus.REJECTED, + }) + ); + } + }) + .catch((err) => { + logError(err as Error, 'Error while fetching selfie document'); + }); +}; diff --git a/src/common/BlockerScreen.tsx b/src/common/BlockerScreen.tsx index 3e1d22de..fb10f4d4 100644 --- a/src/common/BlockerScreen.tsx +++ b/src/common/BlockerScreen.tsx @@ -19,9 +19,6 @@ import { addClickstreamEvent } from '@services/clickstreamEventService'; import { setBlacklistedAppsInstalledData } from '@reducers/blacklistedAppsInstalledSlice'; import perf from '@react-native-firebase/perf'; import { GLOBAL } from '@constants/Global'; -import AgentIdCardFlow from '@screens/AgentIdCard'; -import { IdCardBlockStatus } from '@reducers/profileSlice'; -import FullScreenLoader from '@rn-ui-lib/components/FullScreenLoader'; interface IBlockerScreen { children?: ReactNode; @@ -38,8 +35,7 @@ const BlockerScreen = (props: IBlockerScreen) => { (state) => state.foregroundService ); const { isWifiOrCellularOn, appState } = useAppSelector((state) => state.metadata); - const approvalStatus = useAppSelector((state) => state.profile?.approvalStatus); - const isLoading = useAppSelector((state) => state.profile?.isLoading); + const [shouldUpdate, setShouldUpdate] = useState(); const [showActionBtnLoader, setShowActionBtnLoader] = useState(false); @@ -219,14 +215,6 @@ const BlockerScreen = (props: IBlockerScreen) => { }); return ; } - if (IdCardBlockStatus[approvalStatus as keyof typeof IdCardBlockStatus]) { - return ( - <> - - - - ); - } return <>{props.children}; }; diff --git a/src/common/Constants.ts b/src/common/Constants.ts index 3f3a7e0d..ed0f33a8 100644 --- a/src/common/Constants.ts +++ b/src/common/Constants.ts @@ -1007,44 +1007,6 @@ export const CLICKSTREAM_EVENT_NAMES = { name: 'FA_WAIVE_HISTORY_LOADED', description: 'FA_WAIVE_HISTORY_LOADED', }, - - // Agent Id Card - FA_ID_CARD_BLOCKER_REFRESH_STATUS_BUTTON_CLICKED: { - name: 'FA_ID_CARD_BLOCKER_REFRESH_STATUS_BUTTON_CLICKED', - description: 'FA_ID_CARD_BLOCKER_REFRESH_STATUS_BUTTON_CLICKED', - }, - FA_ID_CARD_BLOCKER_RECAPTURE_IMAGE_BUTTON_CLICKED: { - name: 'FA_ID_CARD_BLOCKER_RECAPTURE_IMAGE_BUTTON_CLICKED', - description: 'FA_ID_CARD_BLOCKER_RECAPTURE_IMAGE_BUTTON_CLICKED', - }, - FA_ID_CARD_BLOCKER_VIEW_ID_CARD_BUTTON_CLICKED: { - name: 'FA_ID_CARD_BLOCKER_VIEW_ID_CARD_BUTTON_CLICKED', - description: 'FA_ID_CARD_BLOCKER_VIEW_ID_CARD_BUTTON_CLICKED', - }, - FA_ID_CARD_BLOCKER_SKIP_BUTTON_CLICKED: { - name: 'FA_ID_CARD_BLOCKER_SKIP_BUTTON_CLICKED', - description: 'FA_ID_CARD_BLOCKER_SKIP_BUTTON_CLICKED', - }, - FA_ID_CARD_BLOCKER_CAPTURE_IMAGE_BUTTON_CLICKED: { - name: 'FA_ID_CARD_BLOCKER_CAPTURE_IMAGE_BUTTON_CLICKED', - description: 'FA_ID_CARD_BLOCKER_CAPTURE_IMAGE_BUTTON_CLICKED', - }, - FA_ID_CARD_BLOCKER_SEND_FOR_APPROVAL_BUTTON_CLICKED: { - name: 'FA_ID_CARD_BLOCKER_SEND_FOR_APPROVAL_BUTTON_CLICKED', - description: 'FA_ID_CARD_BLOCKER_SEND_FOR_APPROVAL_BUTTON_CLICKED', - }, - FA_ID_CARD_BLOCKER_REVIEW_ID_CARD_SCREEN_LOADED: { - name: 'FA_ID_CARD_BLOCKER_REVIEW_ID_CARD_SCREEN_LOADED', - description: 'FA_ID_CARD_BLOCKER_REVIEW_ID_CARD_SCREEN_LOADED', - }, - FA_ID_CARD_BLOCKER_PENDING_ID_CARD_SCREEN_LOADED: { - name: 'FA_ID_CARD_BLOCKER_PENDING_ID_CARD_SCREEN_LOADED', - description: 'FA_ID_CARD_BLOCKER_PENDING_ID_CARD_SCREEN_LOADED', - }, - FA_ID_CARD_BLOCKER_REJECTED_ID_CARD_SCREEN_LOADED: { - name: 'FA_ID_CARD_BLOCKER_REJECTED_ID_CARD_SCREEN_LOADED', - description: 'FA_ID_CARD_BLOCKER_REJECTED_ID_CARD_SCREEN_LOADED', - }, } as const; export enum MimeType { diff --git a/src/hooks/useFCM/notificationHelperFunctions.ts b/src/hooks/useFCM/notificationHelperFunctions.ts index bbc6bb29..8d199e91 100644 --- a/src/hooks/useFCM/notificationHelperFunctions.ts +++ b/src/hooks/useFCM/notificationHelperFunctions.ts @@ -44,8 +44,6 @@ export enum PushNotificationTypes { BOT_REMINDER_CALLBACK_NOTIFICATION = 'REQUESTED_CALLBACK_GEN_AI_BOT_FIELD_SCHEDULED_NOTIFICATION_TEMPLATE', BOT_PROMISED_TO_PAY_NOTIFICATION = 'PROMISED_TO_PAY_GEN_AI_BOT_FIELD_SCHEDULED_NOTIFICATION_TEMPLATE', BOT_REVISIT_NOTIFICATION = 'REVISIT_GEN_AI_BOT_SCHEDULED_NOTIFICATION_TEMPLATE', - ID_CARD_APPROVED = 'AGENT_ID_APPROVED_TEMPLATE', - ID_CARD_REJECTED = 'AGENT_ID_REJECTED_TEMPLATE', AGENT_REVIVAL_CONTACT_PTP_REMINDER_NOTIFICATION = 'AGENT_REVIVAL_CONTACT_PTP_REMINDER_NOTIFICATION', AGENT_REVIVAL_VISIT_COMMITMENT_REMINDER_NOTIFICATION = 'AGENT_REVIVAL_VISIT_COMMITMENT_REMINDER_NOTIFICATION', AGENT_REVIVAL_CASH_COMMITMENT_REMINDER_NOTIFICATION = 'AGENT_REVIVAL_CASH_COMMITMENT_REMINDER_NOTIFICATION', @@ -148,36 +146,6 @@ const getPaymentFailedNotificationContent = (notification: INotification) => { return { title, body, actions, data, defaultPressAction }; }; -// ID Card approved notification content -const getIdCardApprovedNotificationContent = (notification: INotification) => { - const title = 'ID card approved!'; - const body = `Your ID card has been approved. Head over to profile to checkout your ID card`; - const defaultPressAction = actionContentMap[NotificationAction.DEFAULT].pressAction; - const actions = [] as AndroidAction[]; - const data = { - templateId: notification?.template?.id, - notificationId: notification?.id, - idCardNotification: "true", - deepLinks: {}, - }; - return { title, body, actions, data, defaultPressAction }; -}; - -// ID Card rejected notification content -const getIdCardRejectedNotificationContent = (notification: INotification) => { - const title = 'ID card rejected!'; - const body = `Your ID card has been rejected. Please upload your selfie again for the ID card`; - const defaultPressAction = actionContentMap[NotificationAction.DEFAULT].pressAction; - const actions = [] as AndroidAction[]; - const data = { - templateId: notification?.template?.id, - notificationId: notification?.id, - idCardNotification: "true", - deepLinks: {}, - }; - return { title, body, actions, data, defaultPressAction }; -}; - const getBotReminderNotificationContent = (notification: INotification) => { const { template } = notification || {}; const templateName = template?.templateName; @@ -403,8 +371,6 @@ export const notificationContentMap: Record = { [PushNotificationTypes.BOT_REMINDER_CALLBACK_NOTIFICATION]: getBotReminderNotificationContent, [PushNotificationTypes.BOT_PROMISED_TO_PAY_NOTIFICATION]: getBotReminderNotificationContent, [PushNotificationTypes.BOT_REVISIT_NOTIFICATION]: getBotReminderNotificationContent, - [PushNotificationTypes.ID_CARD_APPROVED]: getIdCardApprovedNotificationContent, - [PushNotificationTypes.ID_CARD_REJECTED]: getIdCardRejectedNotificationContent, [PushNotificationTypes.AGENT_REVIVAL_CONTACT_PTP_REMINDER_NOTIFICATION]: getAgentRevivalContactPtpReminderNotificationContent, [PushNotificationTypes.AGENT_REVIVAL_VISIT_COMMITMENT_REMINDER_NOTIFICATION]: getAgentRevivalVisitCommitmentReminderNotificationContent, [PushNotificationTypes.AGENT_REVIVAL_CASH_COMMITMENT_REMINDER_NOTIFICATION]: getAgentRevivalCashCommitmentReminderNotificationContent, diff --git a/src/hooks/useFetchDocument.ts b/src/hooks/useFetchDocument.ts index 57da51bd..13866da2 100644 --- a/src/hooks/useFetchDocument.ts +++ b/src/hooks/useFetchDocument.ts @@ -108,8 +108,8 @@ const useFetchDocument = ( const signedRequestPayload: ISignedRequest = [ { documentReferenceId: referenceId, - caseId: '' + caseDetailObj?.caseId, - caseType: caseDetailObj?.caseType, + caseId: '' + caseDetailObj.caseId, + caseType: caseDetailObj.caseType, unSignedUri: unSignedUri }, ]; diff --git a/src/reducer/profileSlice.ts b/src/reducer/profileSlice.ts index 972e9732..f9f36293 100644 --- a/src/reducer/profileSlice.ts +++ b/src/reducer/profileSlice.ts @@ -2,33 +2,21 @@ import { createSlice } from '@reduxjs/toolkit'; export enum ImageApprovalStatus { NOT_INITIATED = 'NOT_INITIATED', - INVALIDATED = 'INVALIDATED', APPROVED = 'APPROVED', PENDING = 'PENDING', REJECTED = 'REJECTED', } -export const REVIEW_ID_CARD = 'REVIEW_ID_CARD'; - -export const IdCardBlockStatus = { - [ImageApprovalStatus.REJECTED]: true, - [ImageApprovalStatus.INVALIDATED]: true, - [ImageApprovalStatus.NOT_INITIATED]: true, - [ImageApprovalStatus.PENDING]: true, -}; - const initialState = { isUploadingImage: false, imageUri: '', - comment: '', originalImageUri: '', + validationDate: '', showReviewImageModal: false, - approvalStatus: '', + approvalStatus: ImageApprovalStatus.NOT_INITIATED, agencyName: '', agencyCode: '', optimizedImageUri: '', - showApprovedModal: false, - isLoading: false, }; export const profileSlice = createSlice({ @@ -42,20 +30,24 @@ export const profileSlice = createSlice({ const { originalImageUri, optimizedImageUri, + validationDate, approvalStatus, agencyName, agencyCode, - comment, } = action.payload; state.originalImageUri = originalImageUri; + state.validationDate = validationDate; state.approvalStatus = approvalStatus; state.agencyName = agencyName; state.agencyCode = agencyCode; state.optimizedImageUri = optimizedImageUri; - state.comment = comment; }, setIsUploadingImage: (state, action) => { state.isUploadingImage = action.payload; + if (!action.payload) { + state.showReviewImageModal = false; + state.imageUri = ''; + } }, setShowReviewImageModal: (state, action) => { state.showReviewImageModal = action.payload; @@ -63,12 +55,6 @@ export const profileSlice = createSlice({ setApprovalStatus: (state, action) => { state.approvalStatus = action.payload; }, - setShowApprovedModal: (state, action) => { - state.showApprovedModal = action.payload; - }, - setIsLoading: (state, action) => { - state.isLoading = action.payload; - }, resetProfileData: () => initialState, }, }); @@ -80,8 +66,6 @@ export const { setOriginalImageDetails, setApprovalStatus, resetProfileData, - setShowApprovedModal, - setIsLoading, } = profileSlice.actions; export default profileSlice.reducer; diff --git a/src/reducer/userSlice.ts b/src/reducer/userSlice.ts index f9be3340..7b3b95d5 100644 --- a/src/reducer/userSlice.ts +++ b/src/reducer/userSlice.ts @@ -70,11 +70,10 @@ export interface IUserSlice extends IUser { attendanceDate: string; }; featureFlags: { - csaCoOrdinationModuleFeatureFlag: boolean; + csaCoOrdinationModuleFeatureFlag : boolean; feeWaiverFeatureFlag: boolean; fieldAgentPerformanceDashboardEnabled: boolean; - }; - employeeId: string; + } } const initialState: IUserSlice = { @@ -100,8 +99,7 @@ const initialState: IUserSlice = { csaCoOrdinationModuleFeatureFlag: false, feeWaiverFeatureFlag: false, fieldAgentPerformanceDashboardEnabled: false, - }, - employeeId: '', + } }; export const userSlice = createSlice({ @@ -139,8 +137,7 @@ export const userSlice = createSlice({ state.agentAttendance = action.payload; }, setUserAccessData: (state, action) => { - const { roles, isExternalAgent, isFieldTeamLeadOrAgencyManager, featureFlags, employeeId } = - action.payload || {}; + const {roles, isExternalAgent, isFieldTeamLeadOrAgencyManager, featureFlags} = action.payload || {}; if (roles?.length) { state.isTeamLead = isFieldTeamLeadOrAgencyManager; } else { @@ -149,8 +146,7 @@ export const userSlice = createSlice({ state.isExternalAgent = isExternalAgent; state.agentRoles = roles; state.featureFlags = featureFlags; - state.employeeId = employeeId; - }, + } }, }); @@ -161,7 +157,7 @@ export const { setSelectedAgent, setCaseSyncLock, setAgentAttendance, - setUserAccessData, + setUserAccessData } = userSlice.actions; export default userSlice.reducer; diff --git a/src/screens/AgentIdCard/IdCard/IdCard.tsx b/src/screens/AgentIdCard/IdCard/IdCard.tsx deleted file mode 100644 index 5ebe639f..00000000 --- a/src/screens/AgentIdCard/IdCard/IdCard.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import React from 'react'; -import { COLORS } from '@rn-ui-lib/colors'; -import Avatar from '@rn-ui-lib/components/Avatar'; -import Text from '@rn-ui-lib/components/Text'; -import NaviLogoWithTextIcon from '@rn-ui-lib/icons/NaviLogoWithTextIcon'; -import { GenericStyles } from '@rn-ui-lib/styles'; -import { StyleSheet, View } from 'react-native'; -import { useAppSelector } from '@hooks'; -import { RootState } from '@store'; -import { NAVI_AGENCY_CODE } from '@common/Constants'; - -const IdCard = () => { - const imageUri = useAppSelector((state) => state.profile.imageUri); - const agencyName = useAppSelector((state: RootState) => state.profile.agencyName); - const agencyCode = useAppSelector((state: RootState) => state.profile.agencyCode); - const emailId = useAppSelector((state) => state.user.user?.emailId); - const phoneNumber = useAppSelector((state) => state.user.user?.phoneNumber); - const agentName = useAppSelector((state) => state.user.user?.name!!); - const employeeId = useAppSelector((state) => state.user?.employeeId); - const isExternalAgency = agencyName && agencyCode !== NAVI_AGENCY_CODE; - - return ( - - - {isExternalAgency ? ( - <> - - in association with - - - {agencyName} - - - ) : null} - - - - - Debt Management Executive - - - {agentName} - - - {emailId ? `${emailId} |` : null} {phoneNumber} - - {employeeId ? ( - - Emp ID{' '} - - {employeeId} - - - ) : null} - - ); -}; - -const styles = StyleSheet.create({ - greyColor: { - color: COLORS.TEXT.GREY, - }, - agentDetails: { - fontSize: 12, - color: COLORS.BORDER.SECONDARY, - }, - employeeId: { - fontSize: 12, - color: COLORS.TEXT.DARK_BLUE, - }, - lightColor: { - color: COLORS.TEXT.LIGHT, - }, - agencyName: { - lineHeight: 18, - textAlign: 'center', - }, -}); - -export default IdCard; diff --git a/src/screens/AgentIdCard/IdCard/IdCardCreationFlow.tsx b/src/screens/AgentIdCard/IdCard/IdCardCreationFlow.tsx deleted file mode 100644 index 3edbfdae..00000000 --- a/src/screens/AgentIdCard/IdCard/IdCardCreationFlow.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import React from 'react'; -import { COLORS } from '@rn-ui-lib/colors'; -import Button from '@rn-ui-lib/components/Button'; -import Text from '@rn-ui-lib/components/Text'; -import { GenericStyles } from '@rn-ui-lib/styles'; -import { StyleSheet, View } from 'react-native'; -import { useAppDispatch } from '@hooks'; -import GenerateIdCardIcon from '@rn-ui-lib/icons/GenerateIdCardIcon'; -import { handleIdCardImageCapture } from '../utils'; -import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants'; -import { addClickstreamEvent } from '@services/clickstreamEventService'; -import { ImageApprovalStatus } from '@reducers/profileSlice'; - -const IdCardCreationFlow = () => { - const dispatch = useAppDispatch(); - - const handleImageCapture = () => { - addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.FA_ID_CARD_BLOCKER_CAPTURE_IMAGE_BUTTON_CLICKED, { - screen: ImageApprovalStatus.NOT_INITIATED, - }); - dispatch(handleIdCardImageCapture()); - }; - return ( - - - Setup digital ID card to access the app - - Guidelines for generating the ID card - - - - - Make sure the picture quality is clear - - - - Try to take the photo on a white background - - - - -