viettel-ekyc-sdk
Version:
77 lines • 3.51 kB
JavaScript
import { NavigationContainer } from '@react-navigation/native';
import React from 'react';
import { NativeModules } from 'react-native';
import { createNativeStackNavigator } from 'react-native-screens/native-stack';
import { OCR_BACK_TYPE, OCR_FRONT_AND_BACK_TYPE, OCR_FRONT_TYPE, OCR_FULL, } from './constants/camera';
import navigator from './navigation/navigator';
import { FaceScreen } from './screens/FaceScreen';
import { IdCardScreen } from './screens/IdCardScreen';
import { ResultScreen } from './screens/ResultScreen';
import { StepResultScreen } from './screens/StepResultScreen';
import { configApi } from './utils/apisauce';
const Stack = createNativeStackNavigator();
export const getActiveRouteName = (navigationState) => {
if (!navigationState) {
return 'null';
}
const route = navigationState.routes[navigationState.index];
// dive into nested navigators
if (route.state && route.state.routes) {
return getActiveRouteName(route.state);
}
return route.name;
};
const ViettelEkycScreen = ({ type, enableCheckSanity, enableCheckTempering, enableAddFace, showResultScreen, enableAutoCaptureCard, enableAutoCaptureFace, initialCamera, faceLivenessConfiguration, getResult, }) => {
const naviRef = React.useRef();
const initRoute = type === OCR_FRONT_TYPE ||
type === OCR_BACK_TYPE ||
type === OCR_FRONT_AND_BACK_TYPE ||
type === OCR_FULL
? { initialRouteName: 'IdCardScreen' }
: { initialRouteName: 'FaceScreen' };
return (React.createElement(NavigationContainer, { ref: (navigationRef) => {
if (!navigationRef) {
return;
}
navigator.setContainer(navigationRef);
naviRef.current = navigationRef;
}, onStateChange: (state) => {
if (!naviRef.current) {
return;
}
const currentRouteName = getActiveRouteName(state);
console.log('currentRouteName ', currentRouteName);
} },
React.createElement(Stack.Navigator, { ...initRoute, screenOptions: {
headerShown: false,
} },
React.createElement(Stack.Screen, { name: 'IdCardScreen', component: IdCardScreen, options: {
headerShown: false,
}, initialParams: {
type,
enableCheckSanity,
enableCheckTempering,
enableAddFace,
showResultScreen,
enableAutoCaptureCard,
enableAutoCaptureFace,
initialCamera,
faceLivenessConfiguration,
getResult,
} }),
React.createElement(Stack.Screen, { name: 'FaceScreen', component: FaceScreen, initialParams: {
enableCheckSanity,
enableCheckTempering,
enableAutoCaptureFace,
enableAddFace,
showResultScreen,
initialCamera,
faceLivenessConfiguration,
getResult,
} }),
React.createElement(Stack.Screen, { name: 'StepResultScreen', component: StepResultScreen }),
React.createElement(Stack.Screen, { name: 'ResultScreen', component: ResultScreen }))));
};
export { configApi, ViettelEkycScreen };
export default NativeModules.RNViettelEkycSdkModule;
//# sourceMappingURL=index.js.map