react-native-persona 2.30.0 → 2.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +1 -1
- package/ios/PersonaInquiryBridge.m +1 -0
- package/ios/PersonaInquiryViewManager.swift +48 -3
- package/lib/commonjs/PersonaInquiryView.js +4 -0
- package/lib/commonjs/PersonaInquiryView.js.map +1 -1
- package/lib/commonjs/util.js +10 -0
- package/lib/commonjs/util.js.map +1 -1
- package/lib/module/PersonaInquiryView.js +5 -1
- package/lib/module/PersonaInquiryView.js.map +1 -1
- package/lib/module/util.js +9 -0
- package/lib/module/util.js.map +1 -1
- package/lib/typescript/PersonaInquiryView.d.ts +1 -0
- package/lib/typescript/util.d.ts +4 -1
- package/package.json +1 -1
- package/src/PersonaInquiryView.tsx +10 -0
- package/src/util.ts +14 -0
package/android/build.gradle
CHANGED
|
@@ -65,6 +65,6 @@ dependencies {
|
|
|
65
65
|
implementation("com.facebook.react:react-android:+")
|
|
66
66
|
|
|
67
67
|
// NB: be sure to bump `nfc-impl` in example/android/app/build.gradle as well
|
|
68
|
-
implementation 'com.withpersona.sdk2:inquiry:2.30.
|
|
68
|
+
implementation 'com.withpersona.sdk2:inquiry:2.30.4'
|
|
69
69
|
implementation("androidx.fragment:fragment:1.8.6")
|
|
70
70
|
}
|
|
@@ -14,6 +14,7 @@ RCT_EXPORT_VIEW_PROPERTY(inquiry, NSDictionary)
|
|
|
14
14
|
RCT_EXPORT_VIEW_PROPERTY(onComplete, RCTDirectEventBlock)
|
|
15
15
|
RCT_EXPORT_VIEW_PROPERTY(onCanceled, RCTDirectEventBlock)
|
|
16
16
|
RCT_EXPORT_VIEW_PROPERTY(onError, RCTDirectEventBlock)
|
|
17
|
+
RCT_EXPORT_VIEW_PROPERTY(onEvent, RCTDirectEventBlock)
|
|
17
18
|
RCT_EXPORT_VIEW_PROPERTY(onReady, RCTDirectEventBlock)
|
|
18
19
|
|
|
19
20
|
RCT_EXTERN_METHOD(create:(nonnull NSNumber *)reactTag withViewId:(nonnull NSNumber *)viewId)
|
|
@@ -28,8 +28,9 @@ final class PersonaInquiryView: UIView {
|
|
|
28
28
|
@objc var onComplete: RCTDirectEventBlock?
|
|
29
29
|
@objc var onCanceled: RCTDirectEventBlock?
|
|
30
30
|
@objc var onError: RCTDirectEventBlock?
|
|
31
|
+
@objc var onEvent: RCTDirectEventBlock?
|
|
31
32
|
@objc var onReady: RCTDirectEventBlock?
|
|
32
|
-
|
|
33
|
+
|
|
33
34
|
weak var manager: PersonaInquiryViewManager?
|
|
34
35
|
}
|
|
35
36
|
|
|
@@ -229,6 +230,21 @@ extension PersonaInquiryViewManager: InquiryDelegate {
|
|
|
229
230
|
"debugMessage": error.localizedDescription
|
|
230
231
|
])
|
|
231
232
|
}
|
|
233
|
+
|
|
234
|
+
func inquiryEventOccurred(event: InquiryEvent) {
|
|
235
|
+
let canProcessEvent = switch event {
|
|
236
|
+
case .start, .pageChange:
|
|
237
|
+
true
|
|
238
|
+
@unknown default:
|
|
239
|
+
false
|
|
240
|
+
}
|
|
241
|
+
guard canProcessEvent else { return }
|
|
242
|
+
guard let inquiryView else { return }
|
|
243
|
+
|
|
244
|
+
inquiryView.onEvent?([
|
|
245
|
+
"event": inquiryEventToDictionary(event: event)
|
|
246
|
+
])
|
|
247
|
+
}
|
|
232
248
|
}
|
|
233
249
|
|
|
234
250
|
// MARK: - InquiryCollectionDelegate
|
|
@@ -241,14 +257,43 @@ extension PersonaInquiryViewManager: InquiryCollectionDelegate {
|
|
|
241
257
|
}
|
|
242
258
|
|
|
243
259
|
extension PersonaInquiryViewManager: PersonaInlineDelegate {
|
|
244
|
-
|
|
260
|
+
|
|
245
261
|
func navigationStateDidUpdate(navigationState: PersonaInlineNavigationState) {
|
|
246
262
|
// TODO: add custom navigation support
|
|
247
263
|
}
|
|
248
|
-
|
|
264
|
+
|
|
249
265
|
func onReady() {
|
|
250
266
|
guard let inquiryView else { return }
|
|
251
267
|
|
|
252
268
|
inquiryView.onReady?([:])
|
|
253
269
|
}
|
|
254
270
|
}
|
|
271
|
+
|
|
272
|
+
// MARK: - Event Helpers
|
|
273
|
+
|
|
274
|
+
extension PersonaInquiryViewManager {
|
|
275
|
+
/// Converts an InquiryEvent like
|
|
276
|
+
/// `.pageChange(name: "start", path: "inquriy/start")]` to
|
|
277
|
+
/// `["name": "start", "path": "inquriy/start"]`
|
|
278
|
+
private func inquiryEventToDictionary(event: InquiryEvent) -> [String: String] {
|
|
279
|
+
switch event {
|
|
280
|
+
case .start(let value):
|
|
281
|
+
return [
|
|
282
|
+
"type": "start",
|
|
283
|
+
"inquiryId": value.inquiryId,
|
|
284
|
+
"sessionToken": value.sessionToken,
|
|
285
|
+
]
|
|
286
|
+
case .pageChange(let value):
|
|
287
|
+
return [
|
|
288
|
+
"type": "page_change",
|
|
289
|
+
"name": value.name,
|
|
290
|
+
"path": value.path,
|
|
291
|
+
]
|
|
292
|
+
@unknown default:
|
|
293
|
+
return [
|
|
294
|
+
"type": "unknown",
|
|
295
|
+
"value": "unknown"
|
|
296
|
+
]
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
@@ -53,6 +53,9 @@ function PersonaInquiryView(props) {
|
|
|
53
53
|
const _onError = (0, _react.useCallback)(event => {
|
|
54
54
|
(0, _util.callOnErrorCallback)(event.nativeEvent, props.onError);
|
|
55
55
|
}, [props.onError]);
|
|
56
|
+
const _onEvent = (0, _react.useCallback)(event => {
|
|
57
|
+
(0, _util.callOnEventCallback)(event.nativeEvent, props.onEvent);
|
|
58
|
+
}, [props.onEvent]);
|
|
56
59
|
const _onReady = (0, _react.useCallback)(() => {
|
|
57
60
|
(0, _util.callOnReadyCallback)(props.onReady);
|
|
58
61
|
}, [props.onReady]);
|
|
@@ -62,6 +65,7 @@ function PersonaInquiryView(props) {
|
|
|
62
65
|
onComplete: _onComplete,
|
|
63
66
|
onCanceled: _onCanceled,
|
|
64
67
|
onError: _onError,
|
|
68
|
+
onEvent: _onEvent,
|
|
65
69
|
onReady: _onReady,
|
|
66
70
|
ref: ref
|
|
67
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_PersonaInquiryViewManager","_util","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","create","viewId","viewManagerConfig","UIManager","getViewManagerConfig","Commands","console","error","dispatchViewManagerCommand","onReadyCalled","onReadyCallback","onPersonaInquiryViewEvent","event","type","setTimeout","exports","PersonaInquiryView","props","ref","useRef","useEffect","findNodeHandle","current","onReady","_onComplete","useCallback","callOnCompleteCallback","nativeEvent","onComplete","_onCanceled","callOnCanceledCallback","onCanceled","_onError","callOnErrorCallback","onError","_onReady","callOnReadyCallback","createElement","PersonaInquiryViewManager","style","inquiry","toOptionsJson"],"sources":["PersonaInquiryView.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport { findNodeHandle, UIManager } from 'react-native';\nimport { PersonaInquiryViewManager } from './PersonaInquiryViewManager';\nimport {\n callOnCanceledCallback,\n callOnCompleteCallback,\n callOnErrorCallback,\n callOnReadyCallback,\n} from './util';\nimport type {\n OnReadyCallback,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnEventCallback,\n} from './callbacks';\nimport type { InquiryEvent } from './InquiryEvent';\n\nconst create = (viewId: number | null) => {\n try {\n const viewManagerConfig =\n UIManager.getViewManagerConfig('PersonaInquiryView');\n if (!viewManagerConfig || !viewManagerConfig.Commands) {\n console.error('PersonaInquiryView config not found');\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n viewManagerConfig.Commands.create,\n [viewId]\n );\n } catch (error) {\n console.error('Error dispatching create command:', error);\n }\n};\n\nlet onReadyCalled = false;\nlet onReadyCallback = () => {};\nexport const onPersonaInquiryViewEvent: OnEventCallback = (\n event: InquiryEvent\n) => {\n if (event.type == 'start') {\n onReadyCalled = false;\n } else if (event.type == 'page_change' && !onReadyCalled) {\n onReadyCalled = true;\n\n setTimeout(function () {\n onReadyCallback();\n }, 400);\n }\n};\n\nexport default function PersonaInquiryView(props: {\n style: any;\n inquiry: any;\n onComplete: OnCompleteCallback;\n onCanceled: OnCanceledCallback;\n onError: OnErrorCallback;\n onReady: OnReadyCallback;\n}) {\n const ref = useRef(null);\n\n useEffect(() => {\n const viewId = findNodeHandle(ref.current);\n\n onReadyCallback = () => {\n props.onReady();\n };\n\n create(viewId);\n }, []);\n\n const _onComplete = useCallback(\n (event: any) => {\n callOnCompleteCallback(event.nativeEvent, props.onComplete);\n },\n [props.onComplete]\n );\n\n const _onCanceled = useCallback(\n (event: any) => {\n callOnCanceledCallback(event.nativeEvent, props.onCanceled);\n },\n [props.onCanceled]\n );\n\n const _onError = useCallback(\n (event: any) => {\n callOnErrorCallback(event.nativeEvent, props.onError);\n },\n [props.onError]\n );\n\n const _onReady = useCallback(() => {\n callOnReadyCallback(props.onReady);\n }, [props.onReady]);\n\n return (\n <PersonaInquiryViewManager\n style={props.style}\n inquiry={props.inquiry.toOptionsJson()}\n onComplete={_onComplete}\n onCanceled={_onCanceled}\n onError={_onError}\n onReady={_onReady}\n ref={ref}\n />\n );\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_PersonaInquiryViewManager","_util","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","create","viewId","viewManagerConfig","UIManager","getViewManagerConfig","Commands","console","error","dispatchViewManagerCommand","onReadyCalled","onReadyCallback","onPersonaInquiryViewEvent","event","type","setTimeout","exports","PersonaInquiryView","props","ref","useRef","useEffect","findNodeHandle","current","onReady","_onComplete","useCallback","callOnCompleteCallback","nativeEvent","onComplete","_onCanceled","callOnCanceledCallback","onCanceled","_onError","callOnErrorCallback","onError","_onEvent","callOnEventCallback","onEvent","_onReady","callOnReadyCallback","createElement","PersonaInquiryViewManager","style","inquiry","toOptionsJson"],"sources":["PersonaInquiryView.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport { findNodeHandle, UIManager } from 'react-native';\nimport { PersonaInquiryViewManager } from './PersonaInquiryViewManager';\nimport {\n callOnCanceledCallback,\n callOnCompleteCallback,\n callOnErrorCallback,\n callOnEventCallback,\n callOnReadyCallback,\n} from './util';\nimport type {\n OnReadyCallback,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnEventCallback,\n} from './callbacks';\nimport type { InquiryEvent } from './InquiryEvent';\n\nconst create = (viewId: number | null) => {\n try {\n const viewManagerConfig =\n UIManager.getViewManagerConfig('PersonaInquiryView');\n if (!viewManagerConfig || !viewManagerConfig.Commands) {\n console.error('PersonaInquiryView config not found');\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n viewManagerConfig.Commands.create,\n [viewId]\n );\n } catch (error) {\n console.error('Error dispatching create command:', error);\n }\n};\n\nlet onReadyCalled = false;\nlet onReadyCallback = () => {};\nexport const onPersonaInquiryViewEvent: OnEventCallback = (\n event: InquiryEvent\n) => {\n if (event.type == 'start') {\n onReadyCalled = false;\n } else if (event.type == 'page_change' && !onReadyCalled) {\n onReadyCalled = true;\n\n setTimeout(function () {\n onReadyCallback();\n }, 400);\n }\n};\n\nexport default function PersonaInquiryView(props: {\n style: any;\n inquiry: any;\n onComplete: OnCompleteCallback;\n onCanceled: OnCanceledCallback;\n onError: OnErrorCallback;\n onEvent?: OnEventCallback;\n onReady: OnReadyCallback;\n}) {\n const ref = useRef(null);\n\n useEffect(() => {\n const viewId = findNodeHandle(ref.current);\n\n onReadyCallback = () => {\n props.onReady();\n };\n\n create(viewId);\n }, []);\n\n const _onComplete = useCallback(\n (event: any) => {\n callOnCompleteCallback(event.nativeEvent, props.onComplete);\n },\n [props.onComplete]\n );\n\n const _onCanceled = useCallback(\n (event: any) => {\n callOnCanceledCallback(event.nativeEvent, props.onCanceled);\n },\n [props.onCanceled]\n );\n\n const _onError = useCallback(\n (event: any) => {\n callOnErrorCallback(event.nativeEvent, props.onError);\n },\n [props.onError]\n );\n\n const _onEvent = useCallback(\n (event: any) => {\n callOnEventCallback(event.nativeEvent, props.onEvent);\n },\n [props.onEvent]\n );\n\n const _onReady = useCallback(() => {\n callOnReadyCallback(props.onReady);\n }, [props.onReady]);\n\n return (\n <PersonaInquiryViewManager\n style={props.style}\n inquiry={props.inquiry.toOptionsJson()}\n onComplete={_onComplete}\n onCanceled={_onCanceled}\n onError={_onError}\n onEvent={_onEvent}\n onReady={_onReady}\n ref={ref}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/util.js
CHANGED
|
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.callOnCanceledCallback = callOnCanceledCallback;
|
|
7
7
|
exports.callOnCompleteCallback = callOnCompleteCallback;
|
|
8
8
|
exports.callOnErrorCallback = callOnErrorCallback;
|
|
9
|
+
exports.callOnEventCallback = callOnEventCallback;
|
|
9
10
|
exports.callOnReadyCallback = callOnReadyCallback;
|
|
10
11
|
exports.processThemeValues = processThemeValues;
|
|
11
12
|
var _fields = require("./fields");
|
|
13
|
+
var _InquiryEvent = require("./InquiryEvent");
|
|
12
14
|
var _StepData = require("./StepData");
|
|
13
15
|
const HEX_REGEX = /^[a-fA-F0-9]{6}$/;
|
|
14
16
|
function processThemeValues(themeObject) {
|
|
@@ -98,4 +100,12 @@ function callOnErrorCallback(event, callback) {
|
|
|
98
100
|
function callOnReadyCallback(callback) {
|
|
99
101
|
if (callback) callback();
|
|
100
102
|
}
|
|
103
|
+
function callOnEventCallback(event, callback) {
|
|
104
|
+
if (callback) {
|
|
105
|
+
const parsedEvent = _InquiryEvent.InquiryEvent.fromJson(event.event);
|
|
106
|
+
if (parsedEvent) {
|
|
107
|
+
callback(parsedEvent);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
101
111
|
//# sourceMappingURL=util.js.map
|
package/lib/commonjs/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_fields","require","_StepData","HEX_REGEX","processThemeValues","themeObject","result","key","value","Object","entries","includes","colorValue","slice","test","toString","callOnCompleteCallback","event","callback","_event$collectedData","fields","keys","field","undefined","InquiryField","Unknown","type","Integer","Number","parseInt","Boolean","String","collectedData","stepData","translatedStepData","stepDatum","push","assign","DocumentStepData","GovernmentIdStepData","SelfieStepData","UiStepData","extraData","inquiryId","status","callOnCanceledCallback","sessionToken","callOnErrorCallback","Error","debugMessage","errorCode","callOnReadyCallback"],"sources":["util.ts"],"sourcesContent":["import type {\n CollectedData,\n ExternalCollectedData,\n ExtraData,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnReadyCallback,\n} from './callbacks';\nimport { Fields, InquiryField, RawInquiryField } from './fields';\nimport {\n DocumentStepData,\n GovernmentIdStepData,\n SelfieStepData,\n UiStepData,\n} from './StepData';\n\nconst HEX_REGEX = /^[a-fA-F0-9]{6}$/;\nexport function processThemeValues(themeObject: Object) {\n const result: { [key: string]: string } = {};\n for (const [key, value] of Object.entries(themeObject)) {\n if (value === null) {\n continue;\n }\n\n if (key.includes('Color')) {\n let colorValue = value;\n if (value[0] === '#') {\n colorValue = value.slice(1);\n }\n\n if (HEX_REGEX.test(colorValue)) {\n result[key] = `#${colorValue}`;\n } else {\n continue;\n }\n } else {\n result[key] = value.toString();\n }\n }\n\n return result;\n}\n\nexport function callOnCompleteCallback(\n event: {\n inquiryId: string;\n status: string;\n fields: Record<string, RawInquiryField>;\n collectedData: ExternalCollectedData | null;\n },\n callback: OnCompleteCallback | undefined\n) {\n if (callback) {\n let fields: Fields = {};\n for (let key of Object.keys(event.fields || {})) {\n let field = event.fields[key];\n if (field == undefined) {\n fields[key] = new InquiryField.Unknown('null');\n continue;\n }\n switch (field.type) {\n case 'integer':\n fields[key] = new InquiryField.Integer(Number.parseInt(field.value));\n break;\n case 'boolean':\n fields[key] = new InquiryField.Boolean(field.value);\n break;\n case 'string':\n fields[key] = new InquiryField.String(field.value);\n break;\n default:\n fields[key] = new InquiryField.Unknown(field.type);\n break;\n }\n }\n\n let collectedData: CollectedData | null = null;\n\n let stepData = event.collectedData?.stepData;\n if (stepData != null) {\n // Translate the step data from JSON to actual class objects\n let translatedStepData = [];\n\n for (let stepDatum of stepData) {\n switch (stepDatum.type) {\n case 'DocumentStepData':\n translatedStepData.push(\n Object.assign(new DocumentStepData(), stepDatum)\n );\n break;\n case 'GovernmentIdStepData':\n translatedStepData.push(\n Object.assign(new GovernmentIdStepData(), stepDatum)\n );\n break;\n case 'SelfieStepData':\n translatedStepData.push(\n Object.assign(new SelfieStepData(), stepDatum)\n );\n break;\n case 'UiStepData':\n translatedStepData.push(Object.assign(new UiStepData(), stepDatum));\n break;\n }\n }\n\n collectedData = {\n stepData: translatedStepData,\n };\n }\n\n let extraData: ExtraData = {\n collectedData: collectedData,\n };\n\n callback(event.inquiryId, event.status, fields, extraData);\n }\n}\n\nexport function callOnCanceledCallback(\n event: { inquiryId?: string; sessionToken?: string },\n callback: OnCanceledCallback | undefined\n) {\n if (callback) callback(event.inquiryId, event.sessionToken);\n}\n\nexport function callOnErrorCallback(\n event: { debugMessage: string; errorCode?: string },\n callback: OnErrorCallback | undefined\n) {\n if (callback) callback(new Error(event.debugMessage), event.errorCode);\n}\n\nexport function callOnReadyCallback(callback: OnReadyCallback | undefined) {\n if (callback) callback();\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_fields","require","_InquiryEvent","_StepData","HEX_REGEX","processThemeValues","themeObject","result","key","value","Object","entries","includes","colorValue","slice","test","toString","callOnCompleteCallback","event","callback","_event$collectedData","fields","keys","field","undefined","InquiryField","Unknown","type","Integer","Number","parseInt","Boolean","String","collectedData","stepData","translatedStepData","stepDatum","push","assign","DocumentStepData","GovernmentIdStepData","SelfieStepData","UiStepData","extraData","inquiryId","status","callOnCanceledCallback","sessionToken","callOnErrorCallback","Error","debugMessage","errorCode","callOnReadyCallback","callOnEventCallback","parsedEvent","InquiryEvent","fromJson"],"sources":["util.ts"],"sourcesContent":["import type {\n CollectedData,\n ExternalCollectedData,\n ExtraData,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnEventCallback,\n OnReadyCallback,\n} from './callbacks';\nimport { Fields, InquiryField, RawInquiryField } from './fields';\nimport { InquiryEvent } from './InquiryEvent';\nimport {\n DocumentStepData,\n GovernmentIdStepData,\n SelfieStepData,\n UiStepData,\n} from './StepData';\n\nconst HEX_REGEX = /^[a-fA-F0-9]{6}$/;\nexport function processThemeValues(themeObject: Object) {\n const result: { [key: string]: string } = {};\n for (const [key, value] of Object.entries(themeObject)) {\n if (value === null) {\n continue;\n }\n\n if (key.includes('Color')) {\n let colorValue = value;\n if (value[0] === '#') {\n colorValue = value.slice(1);\n }\n\n if (HEX_REGEX.test(colorValue)) {\n result[key] = `#${colorValue}`;\n } else {\n continue;\n }\n } else {\n result[key] = value.toString();\n }\n }\n\n return result;\n}\n\nexport function callOnCompleteCallback(\n event: {\n inquiryId: string;\n status: string;\n fields: Record<string, RawInquiryField>;\n collectedData: ExternalCollectedData | null;\n },\n callback: OnCompleteCallback | undefined\n) {\n if (callback) {\n let fields: Fields = {};\n for (let key of Object.keys(event.fields || {})) {\n let field = event.fields[key];\n if (field == undefined) {\n fields[key] = new InquiryField.Unknown('null');\n continue;\n }\n switch (field.type) {\n case 'integer':\n fields[key] = new InquiryField.Integer(Number.parseInt(field.value));\n break;\n case 'boolean':\n fields[key] = new InquiryField.Boolean(field.value);\n break;\n case 'string':\n fields[key] = new InquiryField.String(field.value);\n break;\n default:\n fields[key] = new InquiryField.Unknown(field.type);\n break;\n }\n }\n\n let collectedData: CollectedData | null = null;\n\n let stepData = event.collectedData?.stepData;\n if (stepData != null) {\n // Translate the step data from JSON to actual class objects\n let translatedStepData = [];\n\n for (let stepDatum of stepData) {\n switch (stepDatum.type) {\n case 'DocumentStepData':\n translatedStepData.push(\n Object.assign(new DocumentStepData(), stepDatum)\n );\n break;\n case 'GovernmentIdStepData':\n translatedStepData.push(\n Object.assign(new GovernmentIdStepData(), stepDatum)\n );\n break;\n case 'SelfieStepData':\n translatedStepData.push(\n Object.assign(new SelfieStepData(), stepDatum)\n );\n break;\n case 'UiStepData':\n translatedStepData.push(Object.assign(new UiStepData(), stepDatum));\n break;\n }\n }\n\n collectedData = {\n stepData: translatedStepData,\n };\n }\n\n let extraData: ExtraData = {\n collectedData: collectedData,\n };\n\n callback(event.inquiryId, event.status, fields, extraData);\n }\n}\n\nexport function callOnCanceledCallback(\n event: { inquiryId?: string; sessionToken?: string },\n callback: OnCanceledCallback | undefined\n) {\n if (callback) callback(event.inquiryId, event.sessionToken);\n}\n\nexport function callOnErrorCallback(\n event: { debugMessage: string; errorCode?: string },\n callback: OnErrorCallback | undefined\n) {\n if (callback) callback(new Error(event.debugMessage), event.errorCode);\n}\n\nexport function callOnReadyCallback(callback: OnReadyCallback | undefined) {\n if (callback) callback();\n}\n\nexport function callOnEventCallback(\n event: { event: any },\n callback: OnEventCallback | undefined\n) {\n if (callback) {\n const parsedEvent = InquiryEvent.fromJson(event.event);\n if (parsedEvent) {\n callback(parsedEvent);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useRef } from 'react';
|
|
2
2
|
import { findNodeHandle, UIManager } from 'react-native';
|
|
3
3
|
import { PersonaInquiryViewManager } from './PersonaInquiryViewManager';
|
|
4
|
-
import { callOnCanceledCallback, callOnCompleteCallback, callOnErrorCallback, callOnReadyCallback } from './util';
|
|
4
|
+
import { callOnCanceledCallback, callOnCompleteCallback, callOnErrorCallback, callOnEventCallback, callOnReadyCallback } from './util';
|
|
5
5
|
const create = viewId => {
|
|
6
6
|
try {
|
|
7
7
|
const viewManagerConfig = UIManager.getViewManagerConfig('PersonaInquiryView');
|
|
@@ -44,6 +44,9 @@ export default function PersonaInquiryView(props) {
|
|
|
44
44
|
const _onError = useCallback(event => {
|
|
45
45
|
callOnErrorCallback(event.nativeEvent, props.onError);
|
|
46
46
|
}, [props.onError]);
|
|
47
|
+
const _onEvent = useCallback(event => {
|
|
48
|
+
callOnEventCallback(event.nativeEvent, props.onEvent);
|
|
49
|
+
}, [props.onEvent]);
|
|
47
50
|
const _onReady = useCallback(() => {
|
|
48
51
|
callOnReadyCallback(props.onReady);
|
|
49
52
|
}, [props.onReady]);
|
|
@@ -53,6 +56,7 @@ export default function PersonaInquiryView(props) {
|
|
|
53
56
|
onComplete: _onComplete,
|
|
54
57
|
onCanceled: _onCanceled,
|
|
55
58
|
onError: _onError,
|
|
59
|
+
onEvent: _onEvent,
|
|
56
60
|
onReady: _onReady,
|
|
57
61
|
ref: ref
|
|
58
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useRef","findNodeHandle","UIManager","PersonaInquiryViewManager","callOnCanceledCallback","callOnCompleteCallback","callOnErrorCallback","callOnReadyCallback","create","viewId","viewManagerConfig","getViewManagerConfig","Commands","console","error","dispatchViewManagerCommand","onReadyCalled","onReadyCallback","onPersonaInquiryViewEvent","event","type","setTimeout","PersonaInquiryView","props","ref","current","onReady","_onComplete","nativeEvent","onComplete","_onCanceled","onCanceled","_onError","onError","_onReady","createElement","style","inquiry","toOptionsJson"],"sources":["PersonaInquiryView.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport { findNodeHandle, UIManager } from 'react-native';\nimport { PersonaInquiryViewManager } from './PersonaInquiryViewManager';\nimport {\n callOnCanceledCallback,\n callOnCompleteCallback,\n callOnErrorCallback,\n callOnReadyCallback,\n} from './util';\nimport type {\n OnReadyCallback,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnEventCallback,\n} from './callbacks';\nimport type { InquiryEvent } from './InquiryEvent';\n\nconst create = (viewId: number | null) => {\n try {\n const viewManagerConfig =\n UIManager.getViewManagerConfig('PersonaInquiryView');\n if (!viewManagerConfig || !viewManagerConfig.Commands) {\n console.error('PersonaInquiryView config not found');\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n viewManagerConfig.Commands.create,\n [viewId]\n );\n } catch (error) {\n console.error('Error dispatching create command:', error);\n }\n};\n\nlet onReadyCalled = false;\nlet onReadyCallback = () => {};\nexport const onPersonaInquiryViewEvent: OnEventCallback = (\n event: InquiryEvent\n) => {\n if (event.type == 'start') {\n onReadyCalled = false;\n } else if (event.type == 'page_change' && !onReadyCalled) {\n onReadyCalled = true;\n\n setTimeout(function () {\n onReadyCallback();\n }, 400);\n }\n};\n\nexport default function PersonaInquiryView(props: {\n style: any;\n inquiry: any;\n onComplete: OnCompleteCallback;\n onCanceled: OnCanceledCallback;\n onError: OnErrorCallback;\n onReady: OnReadyCallback;\n}) {\n const ref = useRef(null);\n\n useEffect(() => {\n const viewId = findNodeHandle(ref.current);\n\n onReadyCallback = () => {\n props.onReady();\n };\n\n create(viewId);\n }, []);\n\n const _onComplete = useCallback(\n (event: any) => {\n callOnCompleteCallback(event.nativeEvent, props.onComplete);\n },\n [props.onComplete]\n );\n\n const _onCanceled = useCallback(\n (event: any) => {\n callOnCanceledCallback(event.nativeEvent, props.onCanceled);\n },\n [props.onCanceled]\n );\n\n const _onError = useCallback(\n (event: any) => {\n callOnErrorCallback(event.nativeEvent, props.onError);\n },\n [props.onError]\n );\n\n const _onReady = useCallback(() => {\n callOnReadyCallback(props.onReady);\n }, [props.onReady]);\n\n return (\n <PersonaInquiryViewManager\n style={props.style}\n inquiry={props.inquiry.toOptionsJson()}\n onComplete={_onComplete}\n onCanceled={_onCanceled}\n onError={_onError}\n onReady={_onReady}\n ref={ref}\n />\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7D,SAASC,cAAc,EAAEC,SAAS,QAAQ,cAAc;AACxD,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SACEC,sBAAsB,EACtBC,sBAAsB,EACtBC,mBAAmB,EACnBC,mBAAmB,QACd,QAAQ;AAUf,MAAMC,MAAM,GAAIC,MAAqB,IAAK;EACxC,IAAI;IACF,MAAMC,iBAAiB,
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useRef","findNodeHandle","UIManager","PersonaInquiryViewManager","callOnCanceledCallback","callOnCompleteCallback","callOnErrorCallback","callOnEventCallback","callOnReadyCallback","create","viewId","viewManagerConfig","getViewManagerConfig","Commands","console","error","dispatchViewManagerCommand","onReadyCalled","onReadyCallback","onPersonaInquiryViewEvent","event","type","setTimeout","PersonaInquiryView","props","ref","current","onReady","_onComplete","nativeEvent","onComplete","_onCanceled","onCanceled","_onError","onError","_onEvent","onEvent","_onReady","createElement","style","inquiry","toOptionsJson"],"sources":["PersonaInquiryView.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport { findNodeHandle, UIManager } from 'react-native';\nimport { PersonaInquiryViewManager } from './PersonaInquiryViewManager';\nimport {\n callOnCanceledCallback,\n callOnCompleteCallback,\n callOnErrorCallback,\n callOnEventCallback,\n callOnReadyCallback,\n} from './util';\nimport type {\n OnReadyCallback,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnEventCallback,\n} from './callbacks';\nimport type { InquiryEvent } from './InquiryEvent';\n\nconst create = (viewId: number | null) => {\n try {\n const viewManagerConfig =\n UIManager.getViewManagerConfig('PersonaInquiryView');\n if (!viewManagerConfig || !viewManagerConfig.Commands) {\n console.error('PersonaInquiryView config not found');\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n viewManagerConfig.Commands.create,\n [viewId]\n );\n } catch (error) {\n console.error('Error dispatching create command:', error);\n }\n};\n\nlet onReadyCalled = false;\nlet onReadyCallback = () => {};\nexport const onPersonaInquiryViewEvent: OnEventCallback = (\n event: InquiryEvent\n) => {\n if (event.type == 'start') {\n onReadyCalled = false;\n } else if (event.type == 'page_change' && !onReadyCalled) {\n onReadyCalled = true;\n\n setTimeout(function () {\n onReadyCallback();\n }, 400);\n }\n};\n\nexport default function PersonaInquiryView(props: {\n style: any;\n inquiry: any;\n onComplete: OnCompleteCallback;\n onCanceled: OnCanceledCallback;\n onError: OnErrorCallback;\n onEvent?: OnEventCallback;\n onReady: OnReadyCallback;\n}) {\n const ref = useRef(null);\n\n useEffect(() => {\n const viewId = findNodeHandle(ref.current);\n\n onReadyCallback = () => {\n props.onReady();\n };\n\n create(viewId);\n }, []);\n\n const _onComplete = useCallback(\n (event: any) => {\n callOnCompleteCallback(event.nativeEvent, props.onComplete);\n },\n [props.onComplete]\n );\n\n const _onCanceled = useCallback(\n (event: any) => {\n callOnCanceledCallback(event.nativeEvent, props.onCanceled);\n },\n [props.onCanceled]\n );\n\n const _onError = useCallback(\n (event: any) => {\n callOnErrorCallback(event.nativeEvent, props.onError);\n },\n [props.onError]\n );\n\n const _onEvent = useCallback(\n (event: any) => {\n callOnEventCallback(event.nativeEvent, props.onEvent);\n },\n [props.onEvent]\n );\n\n const _onReady = useCallback(() => {\n callOnReadyCallback(props.onReady);\n }, [props.onReady]);\n\n return (\n <PersonaInquiryViewManager\n style={props.style}\n inquiry={props.inquiry.toOptionsJson()}\n onComplete={_onComplete}\n onCanceled={_onCanceled}\n onError={_onError}\n onEvent={_onEvent}\n onReady={_onReady}\n ref={ref}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/module/util.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { InquiryField } from './fields';
|
|
2
|
+
import { InquiryEvent } from './InquiryEvent';
|
|
2
3
|
import { DocumentStepData, GovernmentIdStepData, SelfieStepData, UiStepData } from './StepData';
|
|
3
4
|
const HEX_REGEX = /^[a-fA-F0-9]{6}$/;
|
|
4
5
|
export function processThemeValues(themeObject) {
|
|
@@ -88,4 +89,12 @@ export function callOnErrorCallback(event, callback) {
|
|
|
88
89
|
export function callOnReadyCallback(callback) {
|
|
89
90
|
if (callback) callback();
|
|
90
91
|
}
|
|
92
|
+
export function callOnEventCallback(event, callback) {
|
|
93
|
+
if (callback) {
|
|
94
|
+
const parsedEvent = InquiryEvent.fromJson(event.event);
|
|
95
|
+
if (parsedEvent) {
|
|
96
|
+
callback(parsedEvent);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
91
100
|
//# sourceMappingURL=util.js.map
|
package/lib/module/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InquiryField","DocumentStepData","GovernmentIdStepData","SelfieStepData","UiStepData","HEX_REGEX","processThemeValues","themeObject","result","key","value","Object","entries","includes","colorValue","slice","test","toString","callOnCompleteCallback","event","callback","_event$collectedData","fields","keys","field","undefined","Unknown","type","Integer","Number","parseInt","Boolean","String","collectedData","stepData","translatedStepData","stepDatum","push","assign","extraData","inquiryId","status","callOnCanceledCallback","sessionToken","callOnErrorCallback","Error","debugMessage","errorCode","callOnReadyCallback"],"sources":["util.ts"],"sourcesContent":["import type {\n CollectedData,\n ExternalCollectedData,\n ExtraData,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnReadyCallback,\n} from './callbacks';\nimport { Fields, InquiryField, RawInquiryField } from './fields';\nimport {\n DocumentStepData,\n GovernmentIdStepData,\n SelfieStepData,\n UiStepData,\n} from './StepData';\n\nconst HEX_REGEX = /^[a-fA-F0-9]{6}$/;\nexport function processThemeValues(themeObject: Object) {\n const result: { [key: string]: string } = {};\n for (const [key, value] of Object.entries(themeObject)) {\n if (value === null) {\n continue;\n }\n\n if (key.includes('Color')) {\n let colorValue = value;\n if (value[0] === '#') {\n colorValue = value.slice(1);\n }\n\n if (HEX_REGEX.test(colorValue)) {\n result[key] = `#${colorValue}`;\n } else {\n continue;\n }\n } else {\n result[key] = value.toString();\n }\n }\n\n return result;\n}\n\nexport function callOnCompleteCallback(\n event: {\n inquiryId: string;\n status: string;\n fields: Record<string, RawInquiryField>;\n collectedData: ExternalCollectedData | null;\n },\n callback: OnCompleteCallback | undefined\n) {\n if (callback) {\n let fields: Fields = {};\n for (let key of Object.keys(event.fields || {})) {\n let field = event.fields[key];\n if (field == undefined) {\n fields[key] = new InquiryField.Unknown('null');\n continue;\n }\n switch (field.type) {\n case 'integer':\n fields[key] = new InquiryField.Integer(Number.parseInt(field.value));\n break;\n case 'boolean':\n fields[key] = new InquiryField.Boolean(field.value);\n break;\n case 'string':\n fields[key] = new InquiryField.String(field.value);\n break;\n default:\n fields[key] = new InquiryField.Unknown(field.type);\n break;\n }\n }\n\n let collectedData: CollectedData | null = null;\n\n let stepData = event.collectedData?.stepData;\n if (stepData != null) {\n // Translate the step data from JSON to actual class objects\n let translatedStepData = [];\n\n for (let stepDatum of stepData) {\n switch (stepDatum.type) {\n case 'DocumentStepData':\n translatedStepData.push(\n Object.assign(new DocumentStepData(), stepDatum)\n );\n break;\n case 'GovernmentIdStepData':\n translatedStepData.push(\n Object.assign(new GovernmentIdStepData(), stepDatum)\n );\n break;\n case 'SelfieStepData':\n translatedStepData.push(\n Object.assign(new SelfieStepData(), stepDatum)\n );\n break;\n case 'UiStepData':\n translatedStepData.push(Object.assign(new UiStepData(), stepDatum));\n break;\n }\n }\n\n collectedData = {\n stepData: translatedStepData,\n };\n }\n\n let extraData: ExtraData = {\n collectedData: collectedData,\n };\n\n callback(event.inquiryId, event.status, fields, extraData);\n }\n}\n\nexport function callOnCanceledCallback(\n event: { inquiryId?: string; sessionToken?: string },\n callback: OnCanceledCallback | undefined\n) {\n if (callback) callback(event.inquiryId, event.sessionToken);\n}\n\nexport function callOnErrorCallback(\n event: { debugMessage: string; errorCode?: string },\n callback: OnErrorCallback | undefined\n) {\n if (callback) callback(new Error(event.debugMessage), event.errorCode);\n}\n\nexport function callOnReadyCallback(callback: OnReadyCallback | undefined) {\n if (callback) callback();\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["InquiryField","InquiryEvent","DocumentStepData","GovernmentIdStepData","SelfieStepData","UiStepData","HEX_REGEX","processThemeValues","themeObject","result","key","value","Object","entries","includes","colorValue","slice","test","toString","callOnCompleteCallback","event","callback","_event$collectedData","fields","keys","field","undefined","Unknown","type","Integer","Number","parseInt","Boolean","String","collectedData","stepData","translatedStepData","stepDatum","push","assign","extraData","inquiryId","status","callOnCanceledCallback","sessionToken","callOnErrorCallback","Error","debugMessage","errorCode","callOnReadyCallback","callOnEventCallback","parsedEvent","fromJson"],"sources":["util.ts"],"sourcesContent":["import type {\n CollectedData,\n ExternalCollectedData,\n ExtraData,\n OnCanceledCallback,\n OnCompleteCallback,\n OnErrorCallback,\n OnEventCallback,\n OnReadyCallback,\n} from './callbacks';\nimport { Fields, InquiryField, RawInquiryField } from './fields';\nimport { InquiryEvent } from './InquiryEvent';\nimport {\n DocumentStepData,\n GovernmentIdStepData,\n SelfieStepData,\n UiStepData,\n} from './StepData';\n\nconst HEX_REGEX = /^[a-fA-F0-9]{6}$/;\nexport function processThemeValues(themeObject: Object) {\n const result: { [key: string]: string } = {};\n for (const [key, value] of Object.entries(themeObject)) {\n if (value === null) {\n continue;\n }\n\n if (key.includes('Color')) {\n let colorValue = value;\n if (value[0] === '#') {\n colorValue = value.slice(1);\n }\n\n if (HEX_REGEX.test(colorValue)) {\n result[key] = `#${colorValue}`;\n } else {\n continue;\n }\n } else {\n result[key] = value.toString();\n }\n }\n\n return result;\n}\n\nexport function callOnCompleteCallback(\n event: {\n inquiryId: string;\n status: string;\n fields: Record<string, RawInquiryField>;\n collectedData: ExternalCollectedData | null;\n },\n callback: OnCompleteCallback | undefined\n) {\n if (callback) {\n let fields: Fields = {};\n for (let key of Object.keys(event.fields || {})) {\n let field = event.fields[key];\n if (field == undefined) {\n fields[key] = new InquiryField.Unknown('null');\n continue;\n }\n switch (field.type) {\n case 'integer':\n fields[key] = new InquiryField.Integer(Number.parseInt(field.value));\n break;\n case 'boolean':\n fields[key] = new InquiryField.Boolean(field.value);\n break;\n case 'string':\n fields[key] = new InquiryField.String(field.value);\n break;\n default:\n fields[key] = new InquiryField.Unknown(field.type);\n break;\n }\n }\n\n let collectedData: CollectedData | null = null;\n\n let stepData = event.collectedData?.stepData;\n if (stepData != null) {\n // Translate the step data from JSON to actual class objects\n let translatedStepData = [];\n\n for (let stepDatum of stepData) {\n switch (stepDatum.type) {\n case 'DocumentStepData':\n translatedStepData.push(\n Object.assign(new DocumentStepData(), stepDatum)\n );\n break;\n case 'GovernmentIdStepData':\n translatedStepData.push(\n Object.assign(new GovernmentIdStepData(), stepDatum)\n );\n break;\n case 'SelfieStepData':\n translatedStepData.push(\n Object.assign(new SelfieStepData(), stepDatum)\n );\n break;\n case 'UiStepData':\n translatedStepData.push(Object.assign(new UiStepData(), stepDatum));\n break;\n }\n }\n\n collectedData = {\n stepData: translatedStepData,\n };\n }\n\n let extraData: ExtraData = {\n collectedData: collectedData,\n };\n\n callback(event.inquiryId, event.status, fields, extraData);\n }\n}\n\nexport function callOnCanceledCallback(\n event: { inquiryId?: string; sessionToken?: string },\n callback: OnCanceledCallback | undefined\n) {\n if (callback) callback(event.inquiryId, event.sessionToken);\n}\n\nexport function callOnErrorCallback(\n event: { debugMessage: string; errorCode?: string },\n callback: OnErrorCallback | undefined\n) {\n if (callback) callback(new Error(event.debugMessage), event.errorCode);\n}\n\nexport function callOnReadyCallback(callback: OnReadyCallback | undefined) {\n if (callback) callback();\n}\n\nexport function callOnEventCallback(\n event: { event: any },\n callback: OnEventCallback | undefined\n) {\n if (callback) {\n const parsedEvent = InquiryEvent.fromJson(event.event);\n if (parsedEvent) {\n callback(parsedEvent);\n }\n }\n}\n"],"mappings":"AAUA,SAAiBA,YAAY,QAAyB,UAAU;AAChE,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SACEC,gBAAgB,EAChBC,oBAAoB,EACpBC,cAAc,EACdC,UAAU,QACL,YAAY;AAEnB,MAAMC,SAAS,GAAG,kBAAkB;AACpC,OAAO,SAASC,kBAAkBA,CAACC,WAAmB,EAAE;EACtD,MAAMC,MAAiC,GAAG,CAAC,CAAC;EAC5C,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,WAAW,CAAC,EAAE;IACtD,IAAIG,KAAK,KAAK,IAAI,EAAE;MAClB;IACF;IAEA,IAAID,GAAG,CAACI,QAAQ,CAAC,OAAO,CAAC,EAAE;MACzB,IAAIC,UAAU,GAAGJ,KAAK;MACtB,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACpBI,UAAU,GAAGJ,KAAK,CAACK,KAAK,CAAC,CAAC,CAAC;MAC7B;MAEA,IAAIV,SAAS,CAACW,IAAI,CAACF,UAAU,CAAC,EAAE;QAC9BN,MAAM,CAACC,GAAG,CAAC,GAAG,IAAIK,UAAU,EAAE;MAChC,CAAC,MAAM;QACL;MACF;IACF,CAAC,MAAM;MACLN,MAAM,CAACC,GAAG,CAAC,GAAGC,KAAK,CAACO,QAAQ,CAAC,CAAC;IAChC;EACF;EAEA,OAAOT,MAAM;AACf;AAEA,OAAO,SAASU,sBAAsBA,CACpCC,KAKC,EACDC,QAAwC,EACxC;EACA,IAAIA,QAAQ,EAAE;IAAA,IAAAC,oBAAA;IACZ,IAAIC,MAAc,GAAG,CAAC,CAAC;IACvB,KAAK,IAAIb,GAAG,IAAIE,MAAM,CAACY,IAAI,CAACJ,KAAK,CAACG,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;MAC/C,IAAIE,KAAK,GAAGL,KAAK,CAACG,MAAM,CAACb,GAAG,CAAC;MAC7B,IAAIe,KAAK,IAAIC,SAAS,EAAE;QACtBH,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIV,YAAY,CAAC2B,OAAO,CAAC,MAAM,CAAC;QAC9C;MACF;MACA,QAAQF,KAAK,CAACG,IAAI;QAChB,KAAK,SAAS;UACZL,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIV,YAAY,CAAC6B,OAAO,CAACC,MAAM,CAACC,QAAQ,CAACN,KAAK,CAACd,KAAK,CAAC,CAAC;UACpE;QACF,KAAK,SAAS;UACZY,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIV,YAAY,CAACgC,OAAO,CAACP,KAAK,CAACd,KAAK,CAAC;UACnD;QACF,KAAK,QAAQ;UACXY,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIV,YAAY,CAACiC,MAAM,CAACR,KAAK,CAACd,KAAK,CAAC;UAClD;QACF;UACEY,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIV,YAAY,CAAC2B,OAAO,CAACF,KAAK,CAACG,IAAI,CAAC;UAClD;MACJ;IACF;IAEA,IAAIM,aAAmC,GAAG,IAAI;IAE9C,IAAIC,QAAQ,IAAAb,oBAAA,GAAGF,KAAK,CAACc,aAAa,cAAAZ,oBAAA,uBAAnBA,oBAAA,CAAqBa,QAAQ;IAC5C,IAAIA,QAAQ,IAAI,IAAI,EAAE;MACpB;MACA,IAAIC,kBAAkB,GAAG,EAAE;MAE3B,KAAK,IAAIC,SAAS,IAAIF,QAAQ,EAAE;QAC9B,QAAQE,SAAS,CAACT,IAAI;UACpB,KAAK,kBAAkB;YACrBQ,kBAAkB,CAACE,IAAI,CACrB1B,MAAM,CAAC2B,MAAM,CAAC,IAAIrC,gBAAgB,CAAC,CAAC,EAAEmC,SAAS,CACjD,CAAC;YACD;UACF,KAAK,sBAAsB;YACzBD,kBAAkB,CAACE,IAAI,CACrB1B,MAAM,CAAC2B,MAAM,CAAC,IAAIpC,oBAAoB,CAAC,CAAC,EAAEkC,SAAS,CACrD,CAAC;YACD;UACF,KAAK,gBAAgB;YACnBD,kBAAkB,CAACE,IAAI,CACrB1B,MAAM,CAAC2B,MAAM,CAAC,IAAInC,cAAc,CAAC,CAAC,EAAEiC,SAAS,CAC/C,CAAC;YACD;UACF,KAAK,YAAY;YACfD,kBAAkB,CAACE,IAAI,CAAC1B,MAAM,CAAC2B,MAAM,CAAC,IAAIlC,UAAU,CAAC,CAAC,EAAEgC,SAAS,CAAC,CAAC;YACnE;QACJ;MACF;MAEAH,aAAa,GAAG;QACdC,QAAQ,EAAEC;MACZ,CAAC;IACH;IAEA,IAAII,SAAoB,GAAG;MACzBN,aAAa,EAAEA;IACjB,CAAC;IAEDb,QAAQ,CAACD,KAAK,CAACqB,SAAS,EAAErB,KAAK,CAACsB,MAAM,EAAEnB,MAAM,EAAEiB,SAAS,CAAC;EAC5D;AACF;AAEA,OAAO,SAASG,sBAAsBA,CACpCvB,KAAoD,EACpDC,QAAwC,EACxC;EACA,IAAIA,QAAQ,EAAEA,QAAQ,CAACD,KAAK,CAACqB,SAAS,EAAErB,KAAK,CAACwB,YAAY,CAAC;AAC7D;AAEA,OAAO,SAASC,mBAAmBA,CACjCzB,KAAmD,EACnDC,QAAqC,EACrC;EACA,IAAIA,QAAQ,EAAEA,QAAQ,CAAC,IAAIyB,KAAK,CAAC1B,KAAK,CAAC2B,YAAY,CAAC,EAAE3B,KAAK,CAAC4B,SAAS,CAAC;AACxE;AAEA,OAAO,SAASC,mBAAmBA,CAAC5B,QAAqC,EAAE;EACzE,IAAIA,QAAQ,EAAEA,QAAQ,CAAC,CAAC;AAC1B;AAEA,OAAO,SAAS6B,mBAAmBA,CACjC9B,KAAqB,EACrBC,QAAqC,EACrC;EACA,IAAIA,QAAQ,EAAE;IACZ,MAAM8B,WAAW,GAAGlD,YAAY,CAACmD,QAAQ,CAAChC,KAAK,CAACA,KAAK,CAAC;IACtD,IAAI+B,WAAW,EAAE;MACf9B,QAAQ,CAAC8B,WAAW,CAAC;IACvB;EACF;AACF","ignoreList":[]}
|
package/lib/typescript/util.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExternalCollectedData, OnCanceledCallback, OnCompleteCallback, OnErrorCallback, OnReadyCallback } from './callbacks';
|
|
1
|
+
import type { ExternalCollectedData, OnCanceledCallback, OnCompleteCallback, OnErrorCallback, OnEventCallback, OnReadyCallback } from './callbacks';
|
|
2
2
|
import { RawInquiryField } from './fields';
|
|
3
3
|
export declare function processThemeValues(themeObject: Object): {
|
|
4
4
|
[key: string]: string;
|
|
@@ -18,3 +18,6 @@ export declare function callOnErrorCallback(event: {
|
|
|
18
18
|
errorCode?: string;
|
|
19
19
|
}, callback: OnErrorCallback | undefined): void;
|
|
20
20
|
export declare function callOnReadyCallback(callback: OnReadyCallback | undefined): void;
|
|
21
|
+
export declare function callOnEventCallback(event: {
|
|
22
|
+
event: any;
|
|
23
|
+
}, callback: OnEventCallback | undefined): void;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-persona",
|
|
3
3
|
"title": "React Native Persona",
|
|
4
|
-
"version": "2.30.
|
|
4
|
+
"version": "2.30.1",
|
|
5
5
|
"description": "Launch a mobile native implementation of the Persona inquiry flow from React Native.",
|
|
6
6
|
"homepage": "https://docs.withpersona.com/docs/react-native-sdk-integration",
|
|
7
7
|
"bugs": "https://github.com/persona-id/persona-inquiry-sdk-public",
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
callOnCanceledCallback,
|
|
6
6
|
callOnCompleteCallback,
|
|
7
7
|
callOnErrorCallback,
|
|
8
|
+
callOnEventCallback,
|
|
8
9
|
callOnReadyCallback,
|
|
9
10
|
} from './util';
|
|
10
11
|
import type {
|
|
@@ -56,6 +57,7 @@ export default function PersonaInquiryView(props: {
|
|
|
56
57
|
onComplete: OnCompleteCallback;
|
|
57
58
|
onCanceled: OnCanceledCallback;
|
|
58
59
|
onError: OnErrorCallback;
|
|
60
|
+
onEvent?: OnEventCallback;
|
|
59
61
|
onReady: OnReadyCallback;
|
|
60
62
|
}) {
|
|
61
63
|
const ref = useRef(null);
|
|
@@ -91,6 +93,13 @@ export default function PersonaInquiryView(props: {
|
|
|
91
93
|
[props.onError]
|
|
92
94
|
);
|
|
93
95
|
|
|
96
|
+
const _onEvent = useCallback(
|
|
97
|
+
(event: any) => {
|
|
98
|
+
callOnEventCallback(event.nativeEvent, props.onEvent);
|
|
99
|
+
},
|
|
100
|
+
[props.onEvent]
|
|
101
|
+
);
|
|
102
|
+
|
|
94
103
|
const _onReady = useCallback(() => {
|
|
95
104
|
callOnReadyCallback(props.onReady);
|
|
96
105
|
}, [props.onReady]);
|
|
@@ -102,6 +111,7 @@ export default function PersonaInquiryView(props: {
|
|
|
102
111
|
onComplete={_onComplete}
|
|
103
112
|
onCanceled={_onCanceled}
|
|
104
113
|
onError={_onError}
|
|
114
|
+
onEvent={_onEvent}
|
|
105
115
|
onReady={_onReady}
|
|
106
116
|
ref={ref}
|
|
107
117
|
/>
|
package/src/util.ts
CHANGED
|
@@ -5,9 +5,11 @@ import type {
|
|
|
5
5
|
OnCanceledCallback,
|
|
6
6
|
OnCompleteCallback,
|
|
7
7
|
OnErrorCallback,
|
|
8
|
+
OnEventCallback,
|
|
8
9
|
OnReadyCallback,
|
|
9
10
|
} from './callbacks';
|
|
10
11
|
import { Fields, InquiryField, RawInquiryField } from './fields';
|
|
12
|
+
import { InquiryEvent } from './InquiryEvent';
|
|
11
13
|
import {
|
|
12
14
|
DocumentStepData,
|
|
13
15
|
GovernmentIdStepData,
|
|
@@ -135,3 +137,15 @@ export function callOnErrorCallback(
|
|
|
135
137
|
export function callOnReadyCallback(callback: OnReadyCallback | undefined) {
|
|
136
138
|
if (callback) callback();
|
|
137
139
|
}
|
|
140
|
+
|
|
141
|
+
export function callOnEventCallback(
|
|
142
|
+
event: { event: any },
|
|
143
|
+
callback: OnEventCallback | undefined
|
|
144
|
+
) {
|
|
145
|
+
if (callback) {
|
|
146
|
+
const parsedEvent = InquiryEvent.fromJson(event.event);
|
|
147
|
+
if (parsedEvent) {
|
|
148
|
+
callback(parsedEvent);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|