UNPKG

react-native-persona

Version:

Launch a mobile native implementation of the Persona inquiry flow from React Native.

91 lines 3.02 kB
import { InquiryField } from './fields'; import { DocumentStepData, GovernmentIdStepData, SelfieStepData, UiStepData } from './StepData'; const HEX_REGEX = /^[a-fA-F0-9]{6}$/; export function processThemeValues(themeObject) { const result = {}; for (const [key, value] of Object.entries(themeObject)) { if (value === null) { continue; } if (key.includes('Color')) { let colorValue = value; if (value[0] === '#') { colorValue = value.slice(1); } if (HEX_REGEX.test(colorValue)) { result[key] = `#${colorValue}`; } else { continue; } } else { result[key] = value.toString(); } } return result; } export function callOnCompleteCallback(event, callback) { if (callback) { var _event$collectedData; let fields = {}; for (let key of Object.keys(event.fields || {})) { let field = event.fields[key]; if (field == undefined) { fields[key] = new InquiryField.Unknown('null'); continue; } switch (field.type) { case 'integer': fields[key] = new InquiryField.Integer(Number.parseInt(field.value)); break; case 'boolean': fields[key] = new InquiryField.Boolean(field.value); break; case 'string': fields[key] = new InquiryField.String(field.value); break; default: fields[key] = new InquiryField.Unknown(field.type); break; } } let collectedData = null; let stepData = (_event$collectedData = event.collectedData) === null || _event$collectedData === void 0 ? void 0 : _event$collectedData.stepData; if (stepData != null) { // Translate the step data from JSON to actual class objects let translatedStepData = []; for (let stepDatum of stepData) { switch (stepDatum.type) { case 'DocumentStepData': translatedStepData.push(Object.assign(new DocumentStepData(), stepDatum)); break; case 'GovernmentIdStepData': translatedStepData.push(Object.assign(new GovernmentIdStepData(), stepDatum)); break; case 'SelfieStepData': translatedStepData.push(Object.assign(new SelfieStepData(), stepDatum)); break; case 'UiStepData': translatedStepData.push(Object.assign(new UiStepData(), stepDatum)); break; } } collectedData = { stepData: translatedStepData }; } let extraData = { collectedData: collectedData }; callback(event.inquiryId, event.status, fields, extraData); } } export function callOnCanceledCallback(event, callback) { if (callback) callback(event.inquiryId, event.sessionToken); } export function callOnErrorCallback(event, callback) { if (callback) callback(new Error(event.debugMessage), event.errorCode); } export function callOnReadyCallback(callback) { if (callback) callback(); } //# sourceMappingURL=util.js.map