mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-09 13:38:01 -05:00
[INJIMOB-722]: Post Face Capture Notificaiton (#1270)
* [INJIMOB-722]: Showing Success Banner on Face Verification and Error screen on Face Verification Failure. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [injimob-604]: Updating the messagein error screen. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Injimob-722]: Updating the constants. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Injimob-722]: Changes in event params of scan machine. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [InjiMob-745] Implemented sharing error modal with respective CTA's and message when VC sharing has failed. (#1234) * [INJIMOB-745]: Implemented Error moda of sharing failure with title, message & CTAs were display based on Error_codes Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Implemented Error modal of sharing failure with title, message & CTAs were display based on Error_codes Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Updated respective text in all the locals Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Fixed the error of go to history button in success sharing status Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Resolved PR Merge conflicts Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: remove duplicate import which causes build issue Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-745]: Modified SharingStatusModal into dynamic props for buttons, text as per requirement Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Made changes in the rendering of respective button as per requirements Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Adjusted the alignment of bottom buttons & Made header as per wire frame Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Changed the verifier side text messages of Error codes[TUV_UNK_001, TVV_UNK_001, 002, 003] Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Added accessible props to Pressable in SharingStatusModal Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> * [INJIMOB-745]: Modified success screen icons in to SVG's Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> --------- Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> Co-authored-by: srikanth716 <srikanthsri7447@gmail.com> * MOSIP-31468 MOSIP-31384 added sprint 20 testcases for android (#1267) * MOSIP-31255 MOSIP-31106 Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflicts Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * MOSIP-31456 Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * added sunbird test case for ios Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * MOSIP-31478 Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * MOSIP-31468 MOSIP-31384 Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * MOSIP-31384 Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> * resolve conflict Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> --------- Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Injimob-685] fix download error issue which we are getting when the received vc is tampered (#1268) * [INJIMOB-685] remove received vc metadata from storage when it is tampered or failed to store vc into storage Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-685] remove redundant store error in request machine Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-685] remove redundant logic to remove the tampered vc metadata Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-685] fix the logic of checking if tampered vc is myvc or received vc Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-685] fix tampering of received vcs If the received vc is tampered, we should be deleting the vc file & metadata of it. Since the metadata removal was not performed, we were getting download error. This is resolved here. Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-685] remove unused state and actions in requestMachine After adding timestamp to the incoming received vc, every vc shared from wallet is condered as separate vc. Due to this reason, the check if the incoming vc is already available in our received vcs will always be returning false. Thus removing the mergingIncomingVcrelated states in requestMachine to avoid unnecessary checks. Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-685] remove sharing reason related code Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB_685] remove unused event in vc machine Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> --------- Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Co-authored-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * Fixed receive card header is fully in caps (#1269) Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-856] add testIds (#1272) testIDs added for - Inji tour guide slides, banner notification, issuer component Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-852] - Grace fully handling scrollToIndex error of flatlist (#1275) Signed-off-by: Sreenadh S <32409698+sree96@users.noreply.github.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-632] show backup / restore in progress banner (#1264) * [INJIMOB-632] show backup in progress banner Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-632] show restore in progress banner Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-632] change info banner's color Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> --------- Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-864] disable backup button when restoring and vice versa (#1279) Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Injimob-722]: Adding Banner type Info Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-867] - remove all files including unsynced files and get latest file based on date (#1281) Signed-off-by: Sreenadh S <32409698+sree96@users.noreply.github.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB - 865,868] - Fix duplicate VC key for restored VC's and remove metadata if vc file not found (#1283) * [INJIMOB-something] use incremental timestamp for restore and make unload take a flag start time Signed-off-by: Harsh Vardhan <harsh59v@gmail.com> * [INJIMOB-865,868] fix duplicate vckey value for restored vcs and remove vc metadata if file not found Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com> Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-869] remove unused method in store.ts machine Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com> Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-869] revert removing vc metadata if file not found Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com> Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-865] fix tamper vc removal When a VC is tampered, we get the tampered vc popup. Once we press okay button in the popup, we will be refreshing the vc machine's myVcs & recievedVcs context. Due to calling of parallel states, we were having issue with refreshing of myVcs. It is fixed by targeting to init state to refresh Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com> Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-865] remove vc metadata when file is not found Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com> Co-authored-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-869] add code comments & fix minor code issues Signed-off-by: Harsh Vardhan <harsh59v@gmail.com> --------- Signed-off-by: Harsh Vardhan <harsh59v@gmail.com> Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Co-authored-by: Harsh Vardhan <harsh59v@gmail.com> Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Co-authored-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Injimob-722]: Updating face capture success banner status. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * INJIMOB-604 VC Verification Failure Scenarios (#1228) * [INJI-604]: Handle Verification VC Error Scenarios Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-604] remove the card from UI when verify credential is failed and show error overlay Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-604] remove unused actions in existingMosipVcItem and issuers machine Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * INJIMOB-604 Replace Error message overlay with new error screen. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJI-611]: New Error screen implemented Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJI-604]: Transation added for Verification error messages. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJI-604] merge develop and resolve conflicts Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJI-604] remove unnecessary log in error screen Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-604] remove removeVcFromMyVcs action from verify vc failed event and fix typegen warnings Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * INJIMOB-604 : Removing logs and renaming functions Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-604]: Removing unused method. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Inji-604]: Fixing the issue of recursive VC deletion during Go Back event in Verification Error screen. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Inji-604]: Fixing bugs post conflict resolve. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Inji-604]: Removing unused events and adding translations for Go Back button * [Inji-604]: Removed angle brackets for Technical Error * [Inji-604]: Added ToDo to handle backup * [Inji-604]: Removing isVerified flag from the Existing VC Item Machine. * [Inji-604] iOS crash fixed for Verification error Go Back Button Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Inji-604]: Simplified condition for result in verify Credential call. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> --------- Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * Inji mob 737 rtl issue (#1254) * [INJIMOB-737]: fix RTL issue Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: fix receive card navigation issue Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: fix receive card back icon rendering position Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: refactor the header right and left Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: fix rendering issue in ios Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: fix rtl rendering issue in ios Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: refactor screen otion to render in ios Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: refactor HomeScreenOptions to render in ios Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: moving HistoryHeaderTitleStyles to style files Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: fix RTL issue Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> * [INJIMOB-737]: refactor the header right and left Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> --------- Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Injimob-695] : Crash issue on iOS during Home screen navigation is fixed. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [Injimob-722]: Reverting the changes from java files of Injitest. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> --------- Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> Signed-off-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> Signed-off-by: srikanth716 <srikanthsri7447@gmail.com> Signed-off-by: Anup Nehe <anup.nehe@technoforte.co.in> Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Signed-off-by: Sreenadh S <32409698+sree96@users.noreply.github.com> Signed-off-by: Harsh Vardhan <harsh59v@gmail.com> Co-authored-by: Anil_Kumar_Majji <106086523+Anil-kumar-Majji@users.noreply.github.com> Co-authored-by: srikanth716 <srikanthsri7447@gmail.com> Co-authored-by: anup-nehe <117707464+anup-nehe@users.noreply.github.com> Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Co-authored-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Co-authored-by: Sreenadh S <32409698+sree96@users.noreply.github.com> Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com> Co-authored-by: Harsh Vardhan <harsh59v@gmail.com> Co-authored-by: Srikanth Kola <97477121+srikanth716@users.noreply.github.com>
This commit is contained in:
@@ -3,6 +3,7 @@ import {useBackupScreen} from '../screens/backupAndRestore/BackupController';
|
||||
import {BannerNotification} from './BannerNotification';
|
||||
import {useTranslation} from 'react-i18next';
|
||||
import {useBackupRestoreScreen} from '../screens/Settings/BackupRestoreController';
|
||||
import {BANNER_TYPE_SUCCESS, BANNER_TYPE_ERROR, BANNER_TYPE_INFO} from '../shared/constants';
|
||||
|
||||
export const BackupAndRestoreBannerNotification: React.FC = () => {
|
||||
const backUpController = useBackupScreen();
|
||||
@@ -17,7 +18,7 @@ export const BackupAndRestoreBannerNotification: React.FC = () => {
|
||||
|
||||
return (
|
||||
<BannerNotification
|
||||
type="error"
|
||||
type={BANNER_TYPE_ERROR}
|
||||
message={translation}
|
||||
onClosePress={backUpController.DISMISS}
|
||||
key={`backupFailure-${backUpController.backupErrorReason}Popup`}
|
||||
@@ -33,7 +34,7 @@ export const BackupAndRestoreBannerNotification: React.FC = () => {
|
||||
|
||||
return (
|
||||
<BannerNotification
|
||||
type="error"
|
||||
type={BANNER_TYPE_ERROR}
|
||||
key={`restoreFailure-${restoreController.restoreErrorReason}Popup`}
|
||||
message={translation}
|
||||
onClosePress={restoreController.DISMISS}
|
||||
@@ -46,7 +47,7 @@ export const BackupAndRestoreBannerNotification: React.FC = () => {
|
||||
<>
|
||||
{backUpController.showBackupInProgress && (
|
||||
<BannerNotification
|
||||
type="info"
|
||||
type={BANNER_TYPE_INFO}
|
||||
message={t('backupInProgress')}
|
||||
onClosePress={backUpController.DISMISS_SHOW_BACKUP_IN_PROGRESS}
|
||||
key={'dataBackupInProgress'}
|
||||
@@ -56,7 +57,7 @@ export const BackupAndRestoreBannerNotification: React.FC = () => {
|
||||
|
||||
{backUpController.isBackingUpSuccess && (
|
||||
<BannerNotification
|
||||
type="success"
|
||||
type={BANNER_TYPE_SUCCESS}
|
||||
message={t('backupSuccessful')}
|
||||
onClosePress={backUpController.DISMISS}
|
||||
key={'dataBackupSuccessPopup'}
|
||||
@@ -68,7 +69,7 @@ export const BackupAndRestoreBannerNotification: React.FC = () => {
|
||||
|
||||
{restoreController.showRestoreInProgress && (
|
||||
<BannerNotification
|
||||
type="info"
|
||||
type={BANNER_TYPE_INFO}
|
||||
message={t('restoreInProgress')}
|
||||
onClosePress={restoreController.DISMISS_SHOW_RESTORE_IN_PROGRESS}
|
||||
key={'restoreInProgress'}
|
||||
@@ -78,7 +79,7 @@ export const BackupAndRestoreBannerNotification: React.FC = () => {
|
||||
|
||||
{restoreController.isBackUpRestoreSuccess && (
|
||||
<BannerNotification
|
||||
type="success"
|
||||
type={BANNER_TYPE_SUCCESS}
|
||||
message={t('restoreSuccessful')}
|
||||
onClosePress={restoreController.DISMISS}
|
||||
key={'restoreBackupSuccessPopup'}
|
||||
|
||||
@@ -4,6 +4,7 @@ import {Column, Row, Text} from './ui';
|
||||
import {Theme} from './ui/styleUtils';
|
||||
import {Icon} from 'react-native-elements';
|
||||
import testIDProps from '../shared/commonUtil';
|
||||
import {BANNER_TYPE_SUCCESS, BANNER_TYPE_ERROR, BANNER_TYPE_INFO} from '../shared/constants';
|
||||
|
||||
export const BannerNotification: React.FC<BannerNotificationProps> = props => {
|
||||
return (
|
||||
@@ -36,5 +37,5 @@ export interface BannerNotificationProps {
|
||||
message: string;
|
||||
onClosePress: () => void;
|
||||
testId: string;
|
||||
type: 'error' | 'success' | 'info';
|
||||
type: typeof BANNER_TYPE_SUCCESS | typeof BANNER_TYPE_ERROR | typeof BANNER_TYPE_INFO;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import {BannerNotification} from './BannerNotification';
|
||||
import {UseWalletBindingSuccess} from './WalletBindingSuccessController';
|
||||
import {BackupAndRestoreBannerNotification} from './BackupAndRestoreBannerNotification';
|
||||
import {t} from 'i18next';
|
||||
import {BANNER_TYPE_SUCCESS} from '../shared/constants';
|
||||
|
||||
export const BannerNotificationContainer: React.FC = () => {
|
||||
const WalletBindingController = UseWalletBindingSuccess();
|
||||
@@ -16,7 +17,7 @@ export const BannerNotificationContainer: React.FC = () => {
|
||||
{WalletBindingSuccess && (
|
||||
<View style={{marginTop: 10, marginBottom: 10}}>
|
||||
<BannerNotification
|
||||
type="success"
|
||||
type={BANNER_TYPE_SUCCESS}
|
||||
message={t('MyVcsTab:activated')}
|
||||
onClosePress={WalletBindingController.DISMISS}
|
||||
key={'activatedVcPopup'}
|
||||
|
||||
@@ -5,6 +5,8 @@ import {Button, Centered, Column, Row, Text} from '../../components/ui';
|
||||
import {Theme} from './styleUtils';
|
||||
import {LoaderAnimation} from './LoaderAnimation';
|
||||
import {Modal} from './Modal';
|
||||
import {BannerNotification} from '../../components/BannerNotification';
|
||||
import {BANNER_TYPE_SUCCESS, BANNER_TYPE_ERROR} from '../../shared/constants';
|
||||
|
||||
export const Loader: React.FC<LoaderProps> = props => {
|
||||
const {t} = useTranslation('ScanScreen');
|
||||
@@ -108,6 +110,15 @@ export const Loader: React.FC<LoaderProps> = props => {
|
||||
</SafeAreaView>
|
||||
</Row>
|
||||
<View style={Theme.Styles.hrLineFill}></View>
|
||||
{props.showBanner && (
|
||||
<BannerNotification
|
||||
type={props.bannerType ? props.bannerType : BANNER_TYPE_SUCCESS}
|
||||
message={props.bannerMessage as string}
|
||||
onClosePress={props.onBannerClose as () => void}
|
||||
testId={props.bannerTestID as string}
|
||||
/>
|
||||
)}
|
||||
|
||||
{loaderContent()}
|
||||
</Fragment>
|
||||
)}
|
||||
@@ -128,4 +139,9 @@ export interface LoaderProps {
|
||||
isHintVisible?: boolean;
|
||||
onCancel?: () => void;
|
||||
onRetry?: () => void;
|
||||
showBanner?: boolean;
|
||||
bannerMessage?: string;
|
||||
onBannerClose?: () => void;
|
||||
bannerType?: typeof BANNER_TYPE_SUCCESS | typeof BANNER_TYPE_ERROR;
|
||||
bannerTestID?: string;
|
||||
}
|
||||
|
||||
@@ -692,6 +692,11 @@
|
||||
"message": "حدث خطأ ما أثناء نقل البطاقة. حاول مرة اخرى."
|
||||
}
|
||||
}
|
||||
},
|
||||
"postFaceCapture": {
|
||||
"captureSuccessMessage": "تم التحقق من الوجه بنجاح! يتم بدء مشاركة بيانات الاعتماد.",
|
||||
"captureFailureTitle": "فشل التحقق من الوجه!",
|
||||
"captureFailureMessage": "يرجى التأكد من أن وجهك مرئي بوضوح وحاول التقاط صورة شخصية مرة أخرى."
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
|
||||
@@ -701,6 +701,11 @@
|
||||
"message": "Something went wrong while transferring the card. Please try again."
|
||||
}
|
||||
}
|
||||
},
|
||||
"postFaceCapture": {
|
||||
"captureSuccessMessage": "Face Verification is successful! Credential sharing is initiated.",
|
||||
"captureFailureTitle": "Face verification failed!",
|
||||
"captureFailureMessage": "Please ensure that your face is clearly visible and try taking selfie again."
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
|
||||
@@ -696,6 +696,11 @@
|
||||
"message": "Nagkaproblema habang inililipat ang card. Pakisubukang muli."
|
||||
}
|
||||
}
|
||||
},
|
||||
"postFaceCapture": {
|
||||
"captureSuccessMessage": "Matagumpay ang Face Verification! Sinisimulan ang pagbabahagi ng kredensyal.",
|
||||
"captureFailureTitle": "Nabigo ang pag-verify ng mukha!",
|
||||
"captureFailureMessage": "Pakitiyak na malinaw na nakikita ang iyong mukha at subukang mag-selfie muli."
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
|
||||
@@ -692,6 +692,11 @@
|
||||
"message": "कार्ड ट्रांसफर करते समय कुछ गड़बड़ी हुई. कृपया पुन: प्रयास करें।"
|
||||
}
|
||||
}
|
||||
},
|
||||
"postFaceCapture": {
|
||||
"captureSuccessMessage": "चेहरा सत्यापन सफल है! क्रेडेंशियल शेयरिंग शुरू की गई है.",
|
||||
"captureFailureTitle": "चेहरे का सत्यापन विफल!",
|
||||
"captureFailureMessage": "कृपया सुनिश्चित करें कि आपका चेहरा स्पष्ट रूप से दिखाई दे रहा है और फिर से सेल्फी लेने का प्रयास करें।"
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
|
||||
@@ -684,6 +684,11 @@
|
||||
"message": "ಕಾರ್ಡ್ ಅನ್ನು ವರ್ಗಾಯಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
|
||||
}
|
||||
}
|
||||
},
|
||||
"postFaceCapture": {
|
||||
"captureSuccessMessage": "ಮುಖ ಪರಿಶೀಲನೆ ಯಶಸ್ವಿಯಾಗಿದೆ! ರುಜುವಾತು ಹಂಚಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ.",
|
||||
"captureFailureTitle": "ಮುಖ ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ!",
|
||||
"captureFailureMessage": "ನಿಮ್ಮ ಮುಖವು ಸ್ಪಷ್ಟವಾಗಿ ಗೋಚರಿಸುತ್ತಿದೆಯೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಮತ್ತೊಮ್ಮೆ ಸೆಲ್ಫಿ ತೆಗೆದುಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸಿ."
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
|
||||
@@ -661,6 +661,11 @@
|
||||
"message": "Algo salió mal al transferir la tarjeta. Inténtalo de nuevo."
|
||||
}
|
||||
}
|
||||
},
|
||||
"postFaceCapture": {
|
||||
"captureSuccessMessage": "¡La verificación facial fue exitosa! Se inicia el intercambio de credenciales.",
|
||||
"captureFailureTitle": "¡Falló la verificación facial!",
|
||||
"captureFailureMessage": "Asegúrese de que su cara sea claramente visible e intente tomarse una selfie nuevamente."
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
|
||||
@@ -690,6 +690,11 @@
|
||||
"message": "கார்டை மாற்றும்போது ஏதோ தவறு ஏற்பட்டது. தயவு செய்து மீண்டும் முயற்சிக்கவும்."
|
||||
}
|
||||
}
|
||||
},
|
||||
"postFaceCapture": {
|
||||
"captureSuccessMessage": "முக சரிபார்ப்பு வெற்றிகரமாக உள்ளது! நற்சான்றிதழ் பகிர்வு தொடங்கப்பட்டுள்ளது.",
|
||||
"captureFailureTitle": "முக சரிபார்ப்பு தோல்வியடைந்தது!",
|
||||
"captureFailureMessage": "உங்கள் முகம் தெளிவாகத் தெரியும்படி இருப்பதை உறுதிசெய்து, மீண்டும் செல்ஃபி எடுக்க முயற்சிக்கவும்."
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
|
||||
@@ -77,6 +77,7 @@ const model = createModel(
|
||||
QrLoginRef: {} as ActorRefFrom<typeof qrLoginMachine>,
|
||||
linkCode: '',
|
||||
readyForBluetoothStateCheck: false,
|
||||
showFaceCaptureSuccessBanner: false,
|
||||
},
|
||||
{
|
||||
events: {
|
||||
@@ -88,6 +89,7 @@ const model = createModel(
|
||||
VC_REJECTED: () => ({}),
|
||||
VC_SENT: () => ({}),
|
||||
CANCEL: () => ({}),
|
||||
CLOSE_BANNER: () => ({}),
|
||||
STAY_IN_PROGRESS: () => ({}),
|
||||
RETRY: () => ({}),
|
||||
DISMISS: () => ({}),
|
||||
@@ -508,7 +510,10 @@ export const scanMachine =
|
||||
},
|
||||
ACCEPT_REQUEST: {
|
||||
target: 'sendingVc',
|
||||
actions: 'setShareLogTypeUnverified',
|
||||
actions: [
|
||||
'setShareLogTypeUnverified',
|
||||
'resetFaceCaptureBannerStatus',
|
||||
],
|
||||
},
|
||||
CANCEL: {
|
||||
target: 'cancelling',
|
||||
@@ -542,6 +547,9 @@ export const scanMachine =
|
||||
target: '#scan.reviewing.cancelling',
|
||||
actions: ['sendVCShareFlowCancelEndEvent'],
|
||||
},
|
||||
CLOSE_BANNER: {
|
||||
actions: ['resetFaceCaptureBannerStatus'],
|
||||
},
|
||||
},
|
||||
},
|
||||
timeout: {
|
||||
@@ -616,7 +624,10 @@ export const scanMachine =
|
||||
on: {
|
||||
FACE_VALID: {
|
||||
target: 'sendingVc',
|
||||
actions: 'setShareLogTypeVerified',
|
||||
actions: [
|
||||
'setShareLogTypeVerified',
|
||||
'updateFaceCaptureBannerStatus',
|
||||
],
|
||||
},
|
||||
FACE_INVALID: {
|
||||
target: 'invalidIdentity',
|
||||
@@ -850,6 +861,14 @@ export const scanMachine =
|
||||
shareLogType: 'PRESENCE_VERIFIED_AND_VC_SHARED',
|
||||
}),
|
||||
|
||||
updateFaceCaptureBannerStatus: model.assign({
|
||||
showFaceCaptureSuccessBanner: true,
|
||||
}),
|
||||
|
||||
resetFaceCaptureBannerStatus: model.assign({
|
||||
showFaceCaptureSuccessBanner: false,
|
||||
}),
|
||||
|
||||
logShared: send(
|
||||
context => {
|
||||
const vcMetadata = context.selectedVc?.vcMetadata;
|
||||
|
||||
@@ -39,6 +39,13 @@ export function selectIsSendingVc(state: State) {
|
||||
return state.matches('reviewing.sendingVc.inProgress');
|
||||
}
|
||||
|
||||
export function selectIsFaceIdentityVerified(state: State) {
|
||||
return (
|
||||
state.matches('reviewing.sendingVc.inProgress') &&
|
||||
state.context.showFaceCaptureSuccessBanner
|
||||
);
|
||||
}
|
||||
|
||||
export function selectIsSendingVcTimeout(state: State) {
|
||||
return state.matches('reviewing.sendingVc.timeout');
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import {Error} from '../../components/ui/Error';
|
||||
import {useIsFocused} from '@react-navigation/native';
|
||||
import {getVCsOrderedByPinStatus} from '../../shared/Utils';
|
||||
import {SvgImage} from '../../components/ui/svg';
|
||||
import {BANNER_TYPE_SUCCESS} from '../../shared/constants';
|
||||
|
||||
export const MyVcsTab: React.FC<HomeScreenTabProps> = props => {
|
||||
const {t} = useTranslation('MyVcsTab');
|
||||
@@ -102,7 +103,7 @@ export const MyVcsTab: React.FC<HomeScreenTabProps> = props => {
|
||||
<Column fill style={{display: props.isVisible ? 'flex' : 'none'}}>
|
||||
{controller.isRequestSuccessful && (
|
||||
<BannerNotification
|
||||
type="success"
|
||||
type={BANNER_TYPE_SUCCESS}
|
||||
message={t('downloadingYourCard')}
|
||||
onClosePress={() => {
|
||||
controller.RESET_STORE_VC_ITEM_STATUS();
|
||||
|
||||
@@ -12,6 +12,7 @@ import {Loader} from '../../components/ui/Loader';
|
||||
import {Text} from '../../components/ui';
|
||||
import {I18nManager, View} from 'react-native';
|
||||
import {SvgImage} from '../../components/ui/svg';
|
||||
import {BANNER_TYPE_SUCCESS} from '../../shared/constants';
|
||||
|
||||
const ScanStack = createNativeStackNavigator();
|
||||
|
||||
@@ -37,6 +38,11 @@ export const ScanLayout: React.FC = () => {
|
||||
controller.isSendingVc
|
||||
}
|
||||
onRetry={controller.statusOverlay?.onRetry}
|
||||
showBanner={controller.isFaceIdentityVerified}
|
||||
bannerMessage={t('ScanScreen:postFaceCapture:captureSuccessMessage')}
|
||||
onBannerClose={controller.CLOSE_BANNER}
|
||||
bannerType={BANNER_TYPE_SUCCESS}
|
||||
bannerTestID={'faceVerificationSuccess'}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import {
|
||||
selectIsSendingVcTimeout,
|
||||
selectIsSent,
|
||||
selectIsDone,
|
||||
selectIsFaceIdentityVerified,
|
||||
} from '../../machines/bleShare/scan/selectors';
|
||||
import {
|
||||
selectBleError,
|
||||
@@ -62,6 +63,7 @@ export function useScanLayout() {
|
||||
|
||||
const DISMISS = () => scanService.send(ScanEvents.DISMISS());
|
||||
const CANCEL = () => scanService.send(ScanEvents.CANCEL());
|
||||
const CLOSE_BANNER = () => scanService.send(ScanEvents.CLOSE_BANNER());
|
||||
const onStayInProgress = () =>
|
||||
scanService.send(ScanEvents.STAY_IN_PROGRESS());
|
||||
const onRetry = () => scanService.send(ScanEvents.RETRY());
|
||||
@@ -97,6 +99,10 @@ export function useScanLayout() {
|
||||
const isSendingVc = useSelector(scanService, selectIsSendingVc);
|
||||
const isSendingVcTimeout = useSelector(scanService, selectIsSendingVcTimeout);
|
||||
const isStayInProgress = isConnectingTimeout || isSendingVcTimeout;
|
||||
let isFaceIdentityVerified = useSelector(
|
||||
scanService,
|
||||
selectIsFaceIdentityVerified,
|
||||
);
|
||||
|
||||
let statusOverlay: Pick<
|
||||
MessageOverlayProps,
|
||||
@@ -237,5 +243,7 @@ export function useScanLayout() {
|
||||
onRetry,
|
||||
CANCEL,
|
||||
isSendingVc,
|
||||
isFaceIdentityVerified,
|
||||
CLOSE_BANNER,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ import {
|
||||
import {TelemetryConstants} from '../../shared/telemetry/TelemetryConstants';
|
||||
import {getVCsOrderedByPinStatus} from '../../shared/Utils';
|
||||
import {Issuers} from '../../shared/openId4VCI/Utils';
|
||||
import {Error} from '../../components/ui/Error';
|
||||
import {SvgImage} from '../../components/ui/svg';
|
||||
|
||||
export const SendVcScreen: React.FC = () => {
|
||||
const {t} = useTranslation('SendVcScreen');
|
||||
@@ -141,28 +143,24 @@ export const SendVcScreen: React.FC = () => {
|
||||
onFaceInvalid={controller.FACE_INVALID}
|
||||
/>
|
||||
|
||||
<MessageOverlay
|
||||
<Error
|
||||
isModal
|
||||
alignActionsOnEnd
|
||||
showClose={false}
|
||||
isVisible={controller.isInvalidIdentity}
|
||||
title={t('VerifyIdentityOverlay:errors.invalidIdentity.title')}
|
||||
message={t('VerifyIdentityOverlay:errors.invalidIdentity.message')}
|
||||
onBackdropPress={controller.DISMISS}>
|
||||
<Row>
|
||||
<Button
|
||||
testID="cancel"
|
||||
fill
|
||||
type="clear"
|
||||
title={t('common:cancel')}
|
||||
onPress={controller.DISMISS}
|
||||
margin={[0, 8, 0, 0]}
|
||||
/>
|
||||
<Button
|
||||
testID="tryAgain"
|
||||
fill
|
||||
title={t('common:tryAgain')}
|
||||
onPress={controller.RETRY_VERIFICATION}
|
||||
/>
|
||||
</Row>
|
||||
</MessageOverlay>
|
||||
title={t('ScanScreen:postFaceCapture.captureFailureTitle')}
|
||||
message={t('ScanScreen:postFaceCapture.captureFailureMessage')}
|
||||
image={SvgImage.PermissionDenied()}
|
||||
primaryButtonTestID={'retry'}
|
||||
primaryButtonText={t('ScanScreen:status.retry')}
|
||||
primaryButtonEvent={controller.RETRY_VERIFICATION}
|
||||
textButtonTestID={'home'}
|
||||
textButtonText={t('ScanScreen:status.accepted.home')}
|
||||
textButtonEvent={controller.GO_TO_HOME}
|
||||
customImageStyles={{paddingBottom: 0, marginBottom: -6}}
|
||||
customStyles={{marginTop: '20%'}}
|
||||
testID={'shareWithSelfieError'}
|
||||
/>
|
||||
</React.Fragment>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -16,11 +16,17 @@ import {
|
||||
selectIsVerifyingIdentity,
|
||||
} from '../../machines/bleShare/commonSelectors';
|
||||
import {ScanEvents} from '../../machines/bleShare/scan/scanMachine';
|
||||
import {NavigationProp, useNavigation} from '@react-navigation/native';
|
||||
import {RootRouteProps} from '../../routes';
|
||||
import {BOTTOM_TAB_ROUTES} from '../../routes/routesConstants';
|
||||
|
||||
type MyVcsTabNavigation = NavigationProp<RootRouteProps>;
|
||||
|
||||
export function useSendVcScreen() {
|
||||
const {appService} = useContext(GlobalContext);
|
||||
const scanService = appService.children.get('scan');
|
||||
const vcService = appService.children.get('vc');
|
||||
const navigation = useNavigation<MyVcsTabNavigation>();
|
||||
|
||||
const CANCEL = () => scanService.send(ScanEvents.CANCEL());
|
||||
|
||||
@@ -58,5 +64,8 @@ export function useSendVcScreen() {
|
||||
FACE_VALID: () => scanService.send(ScanEvents.FACE_VALID()),
|
||||
FACE_INVALID: () => scanService.send(ScanEvents.FACE_INVALID()),
|
||||
RETRY_VERIFICATION: () => scanService.send(ScanEvents.RETRY_VERIFICATION()),
|
||||
GO_TO_HOME: () => {
|
||||
navigation.navigate(BOTTOM_TAB_ROUTES.home, {screen: 'HomeScreen'});
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -39,6 +39,13 @@ export const LAST_BACKUP_DETAILS = 'lastBackupDetails';
|
||||
|
||||
export const APP_ID_LENGTH = 12;
|
||||
|
||||
//Banner Status
|
||||
export const BANNER_TYPE_SUCCESS = 'success';
|
||||
|
||||
export const BANNER_TYPE_ERROR = 'error';
|
||||
|
||||
export const BANNER_TYPE_INFO = 'info';
|
||||
|
||||
// Numbers and Upper case Alphabets without confusing characters like 0, 1, 2, I, O, Z
|
||||
// prettier-ignore
|
||||
export const APP_ID_DICTIONARY = [
|
||||
|
||||
Reference in New Issue
Block a user