Files
inji-wallet/components/FaceScanner/LivenessDetection.tsx
KiruthikaJeyashankar 003cc156c2 [INJIMOB-1192] onboarding of new issuer is affecting the existing issuers (#1476)
* [INJIMOB-1192] : use wellknown response instead of mimoto issuer config.
-- Remove hardcoding for sunbird issuer in vc activation and verification flow.
-- Render idType from wellknown response
-- Remove UIN/VID from default add-on fields

Signed-off-by: Swati Goel <meet2swati@gmail.com>

* [INJIMOB-1192] : fix propType and some refactoring

Signed-off-by: Swati Goel <meet2swati@gmail.com>

* [INJIMOB-1192] : add credentialType in VcMetadata

Signed-off-by: Swati Goel <meet2swati@gmail.com>

* [INJIMOB-1192] fix vc download via issuer flow due to credentialType mismatch

Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] rename supported list of credential type in issuers model

Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] display id type in history based on wellknown for issuers VC

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] fix id type not shown for VC activation

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] remove unused credentialType field from VCMetaData

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] set default idType for logging activity

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] move vc item machine events into model

Events should not be exported to other packages for direct use so that Xstate's createModel() can decorate the function appropriately

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] show verify banner id type from wellknown

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] refactor duplication and unused code

Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] remove unused displayId in metadata

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] revert the dimensions of camera scanner to old values to support face liveness verification

Co-authored-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>
Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>

* [INJIMOB-1192] remove unused code & debug logs

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

* [INJIMOB-1192] fix failing test cases

Co-authored-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>
Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>

* [INJIMOB-1192] remove unused translations

Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>

---------

Signed-off-by: Swati Goel <meet2swati@gmail.com>
Signed-off-by: KiruthikaJeyashankar <81218987+KiruthikaJeyashankar@users.noreply.github.com>
Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
Co-authored-by: Swati Goel <meet2swati@gmail.com>
Co-authored-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com>
2024-06-04 16:37:54 +05:30

101 lines
3.1 KiB
TypeScript

import React from 'react';
import {Camera, CameraType} from 'expo-camera';
import {View, TouchableOpacity} from 'react-native';
import Spinner from 'react-native-spinkit';
import {Column, Text} from '.././ui';
import {Theme} from '.././ui/styleUtils';
import Svg, {Defs, Mask, Rect, Ellipse} from 'react-native-svg';
import testIDProps from '../../shared/commonUtil';
import {FaceDetectorConfig} from './FaceScannerHelper';
const LivenessDetection: React.FC<LivenessDetectionProps> = ({
screenColor,
infoText,
whichCamera,
setCameraRef,
handleFacesDetected,
faceDetectorConfig,
handleOnCancel,
opacity,
setOpacity,
t,
}) => {
return (
<Column fill align="space-between" style={{backgroundColor: screenColor}}>
<View style={Theme.CameraEnabledStyles.guideContainer}>
<View style={Theme.CameraEnabledStyles.guideContentContainer}>
<Spinner type="ThreeBounce" color={Theme.Colors.Loading} />
<Text
testID="captureInfoText"
size="small"
weight="bold"
color="black"
align="center">
{infoText}
</Text>
</View>
</View>
<View style={{flex: 2, marginTop: 15}}>
<View style={Theme.CameraEnabledStyles.scannerContainer}>
<View>
<Camera
{...testIDProps('camera')}
style={Theme.CameraEnabledStyles.scanner}
type={whichCamera}
ref={setCameraRef}
onFacesDetected={handleFacesDetected}
faceDetectorSettings={faceDetectorConfig}
/>
<Svg height="100%" width="100%" style={{position: 'absolute'}}>
<Defs>
<Mask id="mask" x="0" y="0" height="100%" width="100%">
<Rect height="100%" width="100%" fill="#fff" opacity="0.3" />
<Ellipse rx="38%" ry="45%" cx="50%" cy="50%" fill="black" />
</Mask>
</Defs>
<Rect
height="100%"
width="100%"
fill="rgba(0, 0, 0, 0.8)"
mask="url(#mask)"
/>
</Svg>
</View>
</View>
</View>
<View style={Theme.CameraEnabledStyles.buttonContainer}>
<TouchableOpacity
{...testIDProps('cancel')}
style={[Theme.CameraEnabledStyles.cancelButton, {opacity}]}
onPressIn={() => setOpacity(0.5)}
onPressOut={() => setOpacity(1)}
onPress={handleOnCancel}>
<Text
testID="cancelText"
size="small"
weight="bold"
margin="8"
color="black">
{t('cancel')}
</Text>
</TouchableOpacity>
</View>
</Column>
);
};
export default LivenessDetection;
interface LivenessDetectionProps {
screenColor: string;
infoText: string;
whichCamera: CameraType;
setCameraRef: (node: Camera) => void;
handleFacesDetected: (faces: any) => Promise<void>;
faceDetectorConfig: FaceDetectorConfig;
handleOnCancel: () => void;
opacity: number;
setOpacity: (opacity: number) => void;
t: (key: string) => string;
}