@biopassid/fingerprint-sdk-react-native
Version:
BioPass ID Fingerprint React Native module.
43 lines • 1.93 kB
JavaScript
import { NativeModules, Platform, NativeEventEmitter } from 'react-native';
import { mergeConfigs } from './utils/Utils';
const LINKING_ERROR = `The package '@biopassid/fingerprint-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
ios: "- You have run 'pod install'\n",
default: ''
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
const FingerprintSdkReactNative = NativeModules.FingerprintSdkReactNative ? NativeModules.FingerprintSdkReactNative : new Proxy({}, {
get() {
throw new Error(LINKING_ERROR);
}
});
const eventEmitter = new NativeEventEmitter(FingerprintSdkReactNative);
const supportedEvents = ['fingerprint-sdk-react-native/onFingerCapture', 'fingerprint-sdk-react-native/onStatusChanged', 'fingerprint-sdk-react-native/onFingerDetected'];
export async function takeFingerprint(options) {
try {
const newConfig = mergeConfigs(options.config);
supportedEvents.map(eventName => {
eventEmitter.removeAllListeners(eventName);
const exactEventName = eventName.split('/')[1];
if (exactEventName === 'onFingerCapture') {
eventEmitter.addListener(eventName, event => {
options.onFingerCapture(event.images, event.error);
});
} else if (exactEventName === 'onStatusChanged') {
eventEmitter.addListener(eventName, event => {
if (options.onStatusChanged) {
options.onStatusChanged(event.state);
}
});
} else if (exactEventName === 'onFingerDetected') {
eventEmitter.addListener(eventName, event => {
if (options.onFingerDetected) {
options.onFingerDetected(event.fingerRects);
}
});
}
});
await FingerprintSdkReactNative.takeFingerprint(newConfig);
} catch (error) {
console.error(`Unknown error: ${error}`);
}
}
//# sourceMappingURL=Fingerprint.js.map