mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-08 05:03:56 -05:00
* [INJIMOB-528] add liveness support for face verification Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-528] add and comment blink detection Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-528] update locales and remove blink detection Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] add blinking and increase threshold if blinking is detected Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] sync package lock json Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] update node version to 18 for android build Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] refactor Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] refactor components Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] use the default version of package resolved file Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] refactor and add new env for liveness in workflow Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] remove new env and unused code Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1433] add new env for liveness and combine build descriptiona and build name Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-528] update package lock & pbxproj files Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> * [INJIMOB-1433] add test id for elements Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> --------- Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com> Co-authored-by: adityankannan-tw <adityan410pm@gmail.com> Co-authored-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>
93 lines
3.0 KiB
TypeScript
93 lines
3.0 KiB
TypeScript
import React from 'react';
|
|
import {Column} from '../../components/ui';
|
|
import {useTranslation} from 'react-i18next';
|
|
import {useQrLogin} from './QrLoginController';
|
|
import {VerifyIdentityOverlay} from '../VerifyIdentityOverlay';
|
|
import {MessageOverlay} from '../../components/MessageOverlay';
|
|
import {MyBindedVcs} from './MyBindedVcs';
|
|
import {QrLoginSuccess} from './QrLoginSuccessMessage';
|
|
import {QrConsent} from './QrConsent';
|
|
import {QrLoginRef} from '../../machines/QrLogin/QrLoginMachine';
|
|
import {Icon} from 'react-native-elements';
|
|
import {View} from 'react-native';
|
|
import {FaceVerificationAlertOverlay} from '../Scan/FaceVerificationAlertOverlay';
|
|
import {SvgImage} from '../../components/ui/svg';
|
|
import { LIVENESS_CHECK } from '../../shared/constants';
|
|
|
|
export const QrLogin: React.FC<QrLoginProps> = props => {
|
|
const controller = useQrLogin(props);
|
|
const {t} = useTranslation('QrLogin');
|
|
|
|
return (
|
|
<View
|
|
isVisible={props.isVisible}
|
|
onDismiss={controller.DISMISS}
|
|
headerTitle={t('title')}
|
|
headerRight={<Icon name={''} />}>
|
|
<Column fill>
|
|
<MyBindedVcs
|
|
isVisible={controller.isShowingVcList}
|
|
service={props.service}
|
|
/>
|
|
|
|
<MessageOverlay
|
|
isVisible={
|
|
controller.isWaitingForData ||
|
|
controller.isLoadingMyVcs ||
|
|
controller.isLinkTransaction ||
|
|
controller.isSendingConsent ||
|
|
controller.isSendingAuthenticate
|
|
}
|
|
title={t('loading')}
|
|
progress
|
|
/>
|
|
|
|
<MessageOverlay
|
|
isVisible={controller.isShowingError}
|
|
title={controller.error}
|
|
onButtonPress={controller.DISMISS}
|
|
testID="qrLoginError"
|
|
/>
|
|
|
|
<VerifyIdentityOverlay
|
|
credential={controller.selectCredential}
|
|
verifiableCredentialData={controller.verifiableCredentialData}
|
|
isVerifyingIdentity={controller.isVerifyingIdentity}
|
|
onCancel={controller.CANCEL}
|
|
onFaceValid={controller.FACE_VALID}
|
|
onFaceInvalid={controller.FACE_INVALID}
|
|
isInvalidIdentity={controller.isInvalidIdentity}
|
|
onNavigateHome={controller.GO_TO_HOME}
|
|
onRetryVerification={controller.RETRY_VERIFICATION}
|
|
isLivenessEnabled={LIVENESS_CHECK}
|
|
/>
|
|
|
|
<FaceVerificationAlertOverlay
|
|
isQrLogin={true}
|
|
isVisible={controller.isFaceVerificationConsent}
|
|
onConfirm={controller.FACE_VERIFICATION_CONSENT}
|
|
close={controller.DISMISS}
|
|
/>
|
|
|
|
<QrConsent
|
|
isVisible={controller.isRequestConsent}
|
|
onConfirm={controller.CONFIRM}
|
|
onCancel={controller.DISMISS}
|
|
service={props.service}
|
|
/>
|
|
|
|
<QrLoginSuccess
|
|
isVisible={controller.isVerifyingSuccesful}
|
|
onPress={controller.CONFIRM}
|
|
service={props.service}
|
|
/>
|
|
</Column>
|
|
</View>
|
|
);
|
|
};
|
|
|
|
export interface QrLoginProps {
|
|
isVisible: boolean;
|
|
service: QrLoginRef;
|
|
}
|