react-native-persona 2.29.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.
@@ -2,7 +2,7 @@ require 'json'
2
2
 
3
3
  package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
4
4
 
5
- persona_sdk_version = '2.39.0'
5
+ persona_sdk_version = '2.40.0'
6
6
 
7
7
  Pod::Spec.new do |s|
8
8
  s.name = 'RNPersonaInquiry2'
@@ -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.2'
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
+ }
@@ -30,10 +30,10 @@ let InquiryEvent = exports.InquiryEvent = void 0;
30
30
  }
31
31
  _InquiryEvent.PageChange = PageChange;
32
32
  const isStart = event => {
33
- return event.type === 'start' && event.inquiryId !== undefined && event.sessionToken !== undefined;
33
+ return event != null && typeof event === 'object' && event.type === 'start' && event.inquiryId !== undefined && event.sessionToken !== undefined;
34
34
  };
35
35
  const isPageChange = event => {
36
- return event.type === 'page_change' && event.name !== undefined && event.path !== undefined;
36
+ return event != null && typeof event === 'object' && event.type === 'page_change' && event.name !== undefined && event.path !== undefined;
37
37
  };
38
38
  const fromJson = _InquiryEvent.fromJson = eventJson => {
39
39
  let event;
@@ -1 +1 @@
1
- {"version":3,"names":["InquiryEvent","exports","_InquiryEvent","Start","constructor","inquiryId","sessionToken","_defineProperty","PageChange","name","path","isStart","event","type","undefined","isPageChange","fromJson","eventJson"],"sources":["InquiryEvent.ts"],"sourcesContent":["export interface InquiryEvent {\n readonly type: string;\n}\n\nexport namespace InquiryEvent {\n /**\n * Triggered when an Inquiry session has been created in the client.\n *\n * Dynamic Flow Templates will send this event at the same time as 'ready', and it will not\n * indicate user interaction.\n */\n export class Start implements InquiryEvent {\n readonly type: string = 'start';\n readonly inquiryId: string;\n readonly sessionToken: string;\n\n constructor(inquiryId: string, sessionToken: string) {\n this.inquiryId = inquiryId;\n this.sessionToken = sessionToken;\n }\n }\n\n /**\n * The current page in the Inquiry flow changed. This is primarily used with the Inlined React\n * flow to dynamically resize the widget based on the contents of the current page.\n *\n * page-change events receive a metadata object containing the following fields:\n *\n * @param name name of the next step as configured in the Inquiry Template\n * @param path string representing the step type\n */\n export class PageChange implements InquiryEvent {\n readonly type: string = 'page_change';\n readonly name: string;\n readonly path: string;\n\n constructor(name: string, path: string) {\n this.name = name;\n this.path = path;\n }\n }\n\n const isStart = (event: any): event is Start => {\n return (\n event.type === 'start' &&\n event.inquiryId !== undefined &&\n event.sessionToken !== undefined\n );\n };\n\n const isPageChange = (event: any): event is PageChange => {\n return (\n event.type === 'page_change' &&\n event.name !== undefined &&\n event.path !== undefined\n );\n };\n\n export const fromJson = (eventJson: any): InquiryEvent | null => {\n let event: InquiryEvent | null;\n\n if (isStart(eventJson)) {\n event = new Start(eventJson.inquiryId, eventJson.sessionToken);\n } else if (isPageChange(eventJson)) {\n event = new PageChange(eventJson.name, eventJson.path);\n } else {\n event = null;\n }\n\n return event;\n };\n}\n"],"mappings":";;;;;;;;;IAIiBA,YAAY,GAAAC,OAAA,CAAAD,YAAA;AAAA,WAAAE,aAAA;EAOpB,MAAMC,KAAK,CAAyB;IAKzCC,WAAWA,CAACC,SAAiB,EAAEC,YAAoB,EAAE;MAAAC,eAAA,eAJ7B,OAAO;MAAAA,eAAA;MAAAA,eAAA;MAK7B,IAAI,CAACF,SAAS,GAAGA,SAAS;MAC1B,IAAI,CAACC,YAAY,GAAGA,YAAY;IAClC;EACF;EAACJ,aAAA,CAAAC,KAAA,GAAAA,KAAA;EAWM,MAAMK,UAAU,CAAyB;IAK9CJ,WAAWA,CAACK,IAAY,EAAEC,IAAY,EAAE;MAAAH,eAAA,eAJhB,aAAa;MAAAA,eAAA;MAAAA,eAAA;MAKnC,IAAI,CAACE,IAAI,GAAGA,IAAI;MAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAClB;EACF;EAACR,aAAA,CAAAM,UAAA,GAAAA,UAAA;EAED,MAAMG,OAAO,GAAIC,KAAU,IAAqB;IAC9C,OACEA,KAAK,CAACC,IAAI,KAAK,OAAO,IACtBD,KAAK,CAACP,SAAS,KAAKS,SAAS,IAC7BF,KAAK,CAACN,YAAY,KAAKQ,SAAS;EAEpC,CAAC;EAED,MAAMC,YAAY,GAAIH,KAAU,IAA0B;IACxD,OACEA,KAAK,CAACC,IAAI,KAAK,aAAa,IAC5BD,KAAK,CAACH,IAAI,KAAKK,SAAS,IACxBF,KAAK,CAACF,IAAI,KAAKI,SAAS;EAE5B,CAAC;EAEM,MAAME,QAAQ,GAAAd,aAAA,CAAAc,QAAA,GAAIC,SAAc,IAA0B;IAC/D,IAAIL,KAA0B;IAE9B,IAAID,OAAO,CAACM,SAAS,CAAC,EAAE;MACtBL,KAAK,GAAG,IAAIT,KAAK,CAACc,SAAS,CAACZ,SAAS,EAAEY,SAAS,CAACX,YAAY,CAAC;IAChE,CAAC,MAAM,IAAIS,YAAY,CAACE,SAAS,CAAC,EAAE;MAClCL,KAAK,GAAG,IAAIJ,UAAU,CAACS,SAAS,CAACR,IAAI,EAAEQ,SAAS,CAACP,IAAI,CAAC;IACxD,CAAC,MAAM;MACLE,KAAK,GAAG,IAAI;IACd;IAEA,OAAOA,KAAK;EACd,CAAC;AAAC,GAlEaZ,YAAY,KAAAC,OAAA,CAAAD,YAAA,GAAZA,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["InquiryEvent","exports","_InquiryEvent","Start","constructor","inquiryId","sessionToken","_defineProperty","PageChange","name","path","isStart","event","type","undefined","isPageChange","fromJson","eventJson"],"sources":["InquiryEvent.ts"],"sourcesContent":["export interface InquiryEvent {\n readonly type: string;\n}\n\nexport namespace InquiryEvent {\n /**\n * Triggered when an Inquiry session has been created in the client.\n *\n * Dynamic Flow Templates will send this event at the same time as 'ready', and it will not\n * indicate user interaction.\n */\n export class Start implements InquiryEvent {\n readonly type: string = 'start';\n readonly inquiryId: string;\n readonly sessionToken: string;\n\n constructor(inquiryId: string, sessionToken: string) {\n this.inquiryId = inquiryId;\n this.sessionToken = sessionToken;\n }\n }\n\n /**\n * The current page in the Inquiry flow changed. This is primarily used with the Inlined React\n * flow to dynamically resize the widget based on the contents of the current page.\n *\n * page-change events receive a metadata object containing the following fields:\n *\n * @param name name of the next step as configured in the Inquiry Template\n * @param path string representing the step type\n */\n export class PageChange implements InquiryEvent {\n readonly type: string = 'page_change';\n readonly name: string;\n readonly path: string;\n\n constructor(name: string, path: string) {\n this.name = name;\n this.path = path;\n }\n }\n\n const isStart = (event: any): event is Start => {\n return (\n event != null &&\n typeof event === 'object' &&\n event.type === 'start' &&\n event.inquiryId !== undefined &&\n event.sessionToken !== undefined\n );\n };\n\n const isPageChange = (event: any): event is PageChange => {\n return (\n event != null &&\n typeof event === 'object' &&\n event.type === 'page_change' &&\n event.name !== undefined &&\n event.path !== undefined\n );\n };\n\n export const fromJson = (eventJson: any): InquiryEvent | null => {\n let event: InquiryEvent | null;\n\n if (isStart(eventJson)) {\n event = new Start(eventJson.inquiryId, eventJson.sessionToken);\n } else if (isPageChange(eventJson)) {\n event = new PageChange(eventJson.name, eventJson.path);\n } else {\n event = null;\n }\n\n return event;\n };\n}\n"],"mappings":";;;;;;;;;IAIiBA,YAAY,GAAAC,OAAA,CAAAD,YAAA;AAAA,WAAAE,aAAA;EAOpB,MAAMC,KAAK,CAAyB;IAKzCC,WAAWA,CAACC,SAAiB,EAAEC,YAAoB,EAAE;MAAAC,eAAA,eAJ7B,OAAO;MAAAA,eAAA;MAAAA,eAAA;MAK7B,IAAI,CAACF,SAAS,GAAGA,SAAS;MAC1B,IAAI,CAACC,YAAY,GAAGA,YAAY;IAClC;EACF;EAACJ,aAAA,CAAAC,KAAA,GAAAA,KAAA;EAWM,MAAMK,UAAU,CAAyB;IAK9CJ,WAAWA,CAACK,IAAY,EAAEC,IAAY,EAAE;MAAAH,eAAA,eAJhB,aAAa;MAAAA,eAAA;MAAAA,eAAA;MAKnC,IAAI,CAACE,IAAI,GAAGA,IAAI;MAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAClB;EACF;EAACR,aAAA,CAAAM,UAAA,GAAAA,UAAA;EAED,MAAMG,OAAO,GAAIC,KAAU,IAAqB;IAC9C,OACEA,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,CAACC,IAAI,KAAK,OAAO,IACtBD,KAAK,CAACP,SAAS,KAAKS,SAAS,IAC7BF,KAAK,CAACN,YAAY,KAAKQ,SAAS;EAEpC,CAAC;EAED,MAAMC,YAAY,GAAIH,KAAU,IAA0B;IACxD,OACEA,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,CAACC,IAAI,KAAK,aAAa,IAC5BD,KAAK,CAACH,IAAI,KAAKK,SAAS,IACxBF,KAAK,CAACF,IAAI,KAAKI,SAAS;EAE5B,CAAC;EAEM,MAAME,QAAQ,GAAAd,aAAA,CAAAc,QAAA,GAAIC,SAAc,IAA0B;IAC/D,IAAIL,KAA0B;IAE9B,IAAID,OAAO,CAACM,SAAS,CAAC,EAAE;MACtBL,KAAK,GAAG,IAAIT,KAAK,CAACc,SAAS,CAACZ,SAAS,EAAEY,SAAS,CAACX,YAAY,CAAC;IAChE,CAAC,MAAM,IAAIS,YAAY,CAACE,SAAS,CAAC,EAAE;MAClCL,KAAK,GAAG,IAAIJ,UAAU,CAACS,SAAS,CAACR,IAAI,EAAEQ,SAAS,CAACP,IAAI,CAAC;IACxD,CAAC,MAAM;MACLE,KAAK,GAAG,IAAI;IACd;IAEA,OAAOA,KAAK;EACd,CAAC;AAAC,GAtEaZ,YAAY,KAAAC,OAAA,CAAAD,YAAA,GAAZA,YAAY","ignoreList":[]}
@@ -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;AAKgB,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAUhB,MAAMkB,MAAM,GAAIC,MAAqB,IAAK;EACxC,IAAI;IACF,MAAMC,iBAAiB,GACrBC,sBAAS,CAACC,oBAAoB,CAAC,oBAAoB,CAAC;IACtD,IAAI,CAACF,iBAAiB,IAAI,CAACA,iBAAiB,CAACG,QAAQ,EAAE;MACrDC,OAAO,CAACC,KAAK,CAAC,qCAAqC,CAAC;MACpD;IACF;IACAJ,sBAAS,CAACK,0BAA0B,CAClCP,MAAM,EACNC,iBAAiB,CAACG,QAAQ,CAACL,MAAM,EACjC,CAACC,MAAM,CACT,CAAC;EACH,CAAC,CAAC,OAAOM,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC;EAC3D;AACF,CAAC;AAED,IAAIE,aAAa,GAAG,KAAK;AACzB,IAAIC,eAAe,GAAGA,CAAA,KAAM,CAAC,CAAC;AACvB,MAAMC,yBAA0C,GACrDC,KAAmB,IAChB;EACH,IAAIA,KAAK,CAACC,IAAI,IAAI,OAAO,EAAE;IACzBJ,aAAa,GAAG,KAAK;EACvB,CAAC,MAAM,IAAIG,KAAK,CAACC,IAAI,IAAI,aAAa,IAAI,CAACJ,aAAa,EAAE;IACxDA,aAAa,GAAG,IAAI;IAEpBK,UAAU,CAAC,YAAY;MACrBJ,eAAe,CAAC,CAAC;IACnB,CAAC,EAAE,GAAG,CAAC;EACT;AACF,CAAC;AAACK,OAAA,CAAAJ,yBAAA,GAAAA,yBAAA;AAEa,SAASK,kBAAkBA,CAACC,KAO1C,EAAE;EACD,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAExB,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMnB,MAAM,GAAG,IAAAoB,2BAAc,EAACH,GAAG,CAACI,OAAO,CAAC;IAE1CZ,eAAe,GAAGA,CAAA,KAAM;MACtBO,KAAK,CAACM,OAAO,CAAC,CAAC;IACjB,CAAC;IAEDvB,MAAM,CAACC,MAAM,CAAC;EAChB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMuB,WAAW,GAAG,IAAAC,kBAAW,EAC5Bb,KAAU,IAAK;IACd,IAAAc,4BAAsB,EAACd,KAAK,CAACe,WAAW,EAAEV,KAAK,CAACW,UAAU,CAAC;EAC7D,CAAC,EACD,CAACX,KAAK,CAACW,UAAU,CACnB,CAAC;EAED,MAAMC,WAAW,GAAG,IAAAJ,kBAAW,EAC5Bb,KAAU,IAAK;IACd,IAAAkB,4BAAsB,EAAClB,KAAK,CAACe,WAAW,EAAEV,KAAK,CAACc,UAAU,CAAC;EAC7D,CAAC,EACD,CAACd,KAAK,CAACc,UAAU,CACnB,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAP,kBAAW,EACzBb,KAAU,IAAK;IACd,IAAAqB,yBAAmB,EAACrB,KAAK,CAACe,WAAW,EAAEV,KAAK,CAACiB,OAAO,CAAC;EACvD,CAAC,EACD,CAACjB,KAAK,CAACiB,OAAO,CAChB,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAV,kBAAW,EAAC,MAAM;IACjC,IAAAW,yBAAmB,EAACnB,KAAK,CAACM,OAAO,CAAC;EACpC,CAAC,EAAE,CAACN,KAAK,CAACM,OAAO,CAAC,CAAC;EAEnB,oBACEhD,MAAA,CAAAgB,OAAA,CAAA8C,aAAA,CAAC1D,0BAAA,CAAA2D,yBAAyB;IACxBC,KAAK,EAAEtB,KAAK,CAACsB,KAAM;IACnBC,OAAO,EAAEvB,KAAK,CAACuB,OAAO,CAACC,aAAa,CAAC,CAAE;IACvCb,UAAU,EAAEJ,WAAY;IACxBO,UAAU,EAAEF,WAAY;IACxBK,OAAO,EAAEF,QAAS;IAClBT,OAAO,EAAEY,QAAS;IAClBjB,GAAG,EAAEA;EAAI,CACV,CAAC;AAEN","ignoreList":[]}
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":[]}
@@ -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
@@ -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":"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","ignoreList":[]}
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":";;;;;;;;;;;AAUA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAOA,MAAMG,SAAS,GAAG,kBAAkB;AAC7B,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;AAEO,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,IAAIiB,oBAAY,CAACC,OAAO,CAAC,MAAM,CAAC;QAC9C;MACF;MACA,QAAQH,KAAK,CAACI,IAAI;QAChB,KAAK,SAAS;UACZN,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIiB,oBAAY,CAACG,OAAO,CAACC,MAAM,CAACC,QAAQ,CAACP,KAAK,CAACd,KAAK,CAAC,CAAC;UACpE;QACF,KAAK,SAAS;UACZY,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIiB,oBAAY,CAACM,OAAO,CAACR,KAAK,CAACd,KAAK,CAAC;UACnD;QACF,KAAK,QAAQ;UACXY,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIiB,oBAAY,CAACO,MAAM,CAACT,KAAK,CAACd,KAAK,CAAC;UAClD;QACF;UACEY,MAAM,CAACb,GAAG,CAAC,GAAG,IAAIiB,oBAAY,CAACC,OAAO,CAACH,KAAK,CAACI,IAAI,CAAC;UAClD;MACJ;IACF;IAEA,IAAIM,aAAmC,GAAG,IAAI;IAE9C,IAAIC,QAAQ,IAAAd,oBAAA,GAAGF,KAAK,CAACe,aAAa,cAAAb,oBAAA,uBAAnBA,oBAAA,CAAqBc,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,CACrB3B,MAAM,CAAC4B,MAAM,CAAC,IAAIC,0BAAgB,CAAC,CAAC,EAAEH,SAAS,CACjD,CAAC;YACD;UACF,KAAK,sBAAsB;YACzBD,kBAAkB,CAACE,IAAI,CACrB3B,MAAM,CAAC4B,MAAM,CAAC,IAAIE,8BAAoB,CAAC,CAAC,EAAEJ,SAAS,CACrD,CAAC;YACD;UACF,KAAK,gBAAgB;YACnBD,kBAAkB,CAACE,IAAI,CACrB3B,MAAM,CAAC4B,MAAM,CAAC,IAAIG,wBAAc,CAAC,CAAC,EAAEL,SAAS,CAC/C,CAAC;YACD;UACF,KAAK,YAAY;YACfD,kBAAkB,CAACE,IAAI,CAAC3B,MAAM,CAAC4B,MAAM,CAAC,IAAII,oBAAU,CAAC,CAAC,EAAEN,SAAS,CAAC,CAAC;YACnE;QACJ;MACF;MAEAH,aAAa,GAAG;QACdC,QAAQ,EAAEC;MACZ,CAAC;IACH;IAEA,IAAIQ,SAAoB,GAAG;MACzBV,aAAa,EAAEA;IACjB,CAAC;IAEDd,QAAQ,CAACD,KAAK,CAAC0B,SAAS,EAAE1B,KAAK,CAAC2B,MAAM,EAAExB,MAAM,EAAEsB,SAAS,CAAC;EAC5D;AACF;AAEO,SAASG,sBAAsBA,CACpC5B,KAAoD,EACpDC,QAAwC,EACxC;EACA,IAAIA,QAAQ,EAAEA,QAAQ,CAACD,KAAK,CAAC0B,SAAS,EAAE1B,KAAK,CAAC6B,YAAY,CAAC;AAC7D;AAEO,SAASC,mBAAmBA,CACjC9B,KAAmD,EACnDC,QAAqC,EACrC;EACA,IAAIA,QAAQ,EAAEA,QAAQ,CAAC,IAAI8B,KAAK,CAAC/B,KAAK,CAACgC,YAAY,CAAC,EAAEhC,KAAK,CAACiC,SAAS,CAAC;AACxE;AAEO,SAASC,mBAAmBA,CAACjC,QAAqC,EAAE;EACzE,IAAIA,QAAQ,EAAEA,QAAQ,CAAC,CAAC;AAC1B;AAEO,SAASkC,mBAAmBA,CACjCnC,KAAqB,EACrBC,QAAqC,EACrC;EACA,IAAIA,QAAQ,EAAE;IACZ,MAAMmC,WAAW,GAAGC,0BAAY,CAACC,QAAQ,CAACtC,KAAK,CAACA,KAAK,CAAC;IACtD,IAAIoC,WAAW,EAAE;MACfnC,QAAQ,CAACmC,WAAW,CAAC;IACvB;EACF;AACF","ignoreList":[]}
@@ -24,10 +24,10 @@ export let InquiryEvent;
24
24
  }
25
25
  _InquiryEvent.PageChange = PageChange;
26
26
  const isStart = event => {
27
- return event.type === 'start' && event.inquiryId !== undefined && event.sessionToken !== undefined;
27
+ return event != null && typeof event === 'object' && event.type === 'start' && event.inquiryId !== undefined && event.sessionToken !== undefined;
28
28
  };
29
29
  const isPageChange = event => {
30
- return event.type === 'page_change' && event.name !== undefined && event.path !== undefined;
30
+ return event != null && typeof event === 'object' && event.type === 'page_change' && event.name !== undefined && event.path !== undefined;
31
31
  };
32
32
  const fromJson = _InquiryEvent.fromJson = eventJson => {
33
33
  let event;
@@ -1 +1 @@
1
- {"version":3,"names":["InquiryEvent","_InquiryEvent","Start","constructor","inquiryId","sessionToken","_defineProperty","PageChange","name","path","isStart","event","type","undefined","isPageChange","fromJson","eventJson"],"sources":["InquiryEvent.ts"],"sourcesContent":["export interface InquiryEvent {\n readonly type: string;\n}\n\nexport namespace InquiryEvent {\n /**\n * Triggered when an Inquiry session has been created in the client.\n *\n * Dynamic Flow Templates will send this event at the same time as 'ready', and it will not\n * indicate user interaction.\n */\n export class Start implements InquiryEvent {\n readonly type: string = 'start';\n readonly inquiryId: string;\n readonly sessionToken: string;\n\n constructor(inquiryId: string, sessionToken: string) {\n this.inquiryId = inquiryId;\n this.sessionToken = sessionToken;\n }\n }\n\n /**\n * The current page in the Inquiry flow changed. This is primarily used with the Inlined React\n * flow to dynamically resize the widget based on the contents of the current page.\n *\n * page-change events receive a metadata object containing the following fields:\n *\n * @param name name of the next step as configured in the Inquiry Template\n * @param path string representing the step type\n */\n export class PageChange implements InquiryEvent {\n readonly type: string = 'page_change';\n readonly name: string;\n readonly path: string;\n\n constructor(name: string, path: string) {\n this.name = name;\n this.path = path;\n }\n }\n\n const isStart = (event: any): event is Start => {\n return (\n event.type === 'start' &&\n event.inquiryId !== undefined &&\n event.sessionToken !== undefined\n );\n };\n\n const isPageChange = (event: any): event is PageChange => {\n return (\n event.type === 'page_change' &&\n event.name !== undefined &&\n event.path !== undefined\n );\n };\n\n export const fromJson = (eventJson: any): InquiryEvent | null => {\n let event: InquiryEvent | null;\n\n if (isStart(eventJson)) {\n event = new Start(eventJson.inquiryId, eventJson.sessionToken);\n } else if (isPageChange(eventJson)) {\n event = new PageChange(eventJson.name, eventJson.path);\n } else {\n event = null;\n }\n\n return event;\n };\n}\n"],"mappings":";;;WAIiBA,YAAY;AAAA,WAAAC,aAAA;EAOpB,MAAMC,KAAK,CAAyB;IAKzCC,WAAWA,CAACC,SAAiB,EAAEC,YAAoB,EAAE;MAAAC,eAAA,eAJ7B,OAAO;MAAAA,eAAA;MAAAA,eAAA;MAK7B,IAAI,CAACF,SAAS,GAAGA,SAAS;MAC1B,IAAI,CAACC,YAAY,GAAGA,YAAY;IAClC;EACF;EAACJ,aAAA,CAAAC,KAAA,GAAAA,KAAA;EAWM,MAAMK,UAAU,CAAyB;IAK9CJ,WAAWA,CAACK,IAAY,EAAEC,IAAY,EAAE;MAAAH,eAAA,eAJhB,aAAa;MAAAA,eAAA;MAAAA,eAAA;MAKnC,IAAI,CAACE,IAAI,GAAGA,IAAI;MAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAClB;EACF;EAACR,aAAA,CAAAM,UAAA,GAAAA,UAAA;EAED,MAAMG,OAAO,GAAIC,KAAU,IAAqB;IAC9C,OACEA,KAAK,CAACC,IAAI,KAAK,OAAO,IACtBD,KAAK,CAACP,SAAS,KAAKS,SAAS,IAC7BF,KAAK,CAACN,YAAY,KAAKQ,SAAS;EAEpC,CAAC;EAED,MAAMC,YAAY,GAAIH,KAAU,IAA0B;IACxD,OACEA,KAAK,CAACC,IAAI,KAAK,aAAa,IAC5BD,KAAK,CAACH,IAAI,KAAKK,SAAS,IACxBF,KAAK,CAACF,IAAI,KAAKI,SAAS;EAE5B,CAAC;EAEM,MAAME,QAAQ,GAAAd,aAAA,CAAAc,QAAA,GAAIC,SAAc,IAA0B;IAC/D,IAAIL,KAA0B;IAE9B,IAAID,OAAO,CAACM,SAAS,CAAC,EAAE;MACtBL,KAAK,GAAG,IAAIT,KAAK,CAACc,SAAS,CAACZ,SAAS,EAAEY,SAAS,CAACX,YAAY,CAAC;IAChE,CAAC,MAAM,IAAIS,YAAY,CAACE,SAAS,CAAC,EAAE;MAClCL,KAAK,GAAG,IAAIJ,UAAU,CAACS,SAAS,CAACR,IAAI,EAAEQ,SAAS,CAACP,IAAI,CAAC;IACxD,CAAC,MAAM;MACLE,KAAK,GAAG,IAAI;IACd;IAEA,OAAOA,KAAK;EACd,CAAC;AAAC,GAlEaX,YAAY,KAAZA,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["InquiryEvent","_InquiryEvent","Start","constructor","inquiryId","sessionToken","_defineProperty","PageChange","name","path","isStart","event","type","undefined","isPageChange","fromJson","eventJson"],"sources":["InquiryEvent.ts"],"sourcesContent":["export interface InquiryEvent {\n readonly type: string;\n}\n\nexport namespace InquiryEvent {\n /**\n * Triggered when an Inquiry session has been created in the client.\n *\n * Dynamic Flow Templates will send this event at the same time as 'ready', and it will not\n * indicate user interaction.\n */\n export class Start implements InquiryEvent {\n readonly type: string = 'start';\n readonly inquiryId: string;\n readonly sessionToken: string;\n\n constructor(inquiryId: string, sessionToken: string) {\n this.inquiryId = inquiryId;\n this.sessionToken = sessionToken;\n }\n }\n\n /**\n * The current page in the Inquiry flow changed. This is primarily used with the Inlined React\n * flow to dynamically resize the widget based on the contents of the current page.\n *\n * page-change events receive a metadata object containing the following fields:\n *\n * @param name name of the next step as configured in the Inquiry Template\n * @param path string representing the step type\n */\n export class PageChange implements InquiryEvent {\n readonly type: string = 'page_change';\n readonly name: string;\n readonly path: string;\n\n constructor(name: string, path: string) {\n this.name = name;\n this.path = path;\n }\n }\n\n const isStart = (event: any): event is Start => {\n return (\n event != null &&\n typeof event === 'object' &&\n event.type === 'start' &&\n event.inquiryId !== undefined &&\n event.sessionToken !== undefined\n );\n };\n\n const isPageChange = (event: any): event is PageChange => {\n return (\n event != null &&\n typeof event === 'object' &&\n event.type === 'page_change' &&\n event.name !== undefined &&\n event.path !== undefined\n );\n };\n\n export const fromJson = (eventJson: any): InquiryEvent | null => {\n let event: InquiryEvent | null;\n\n if (isStart(eventJson)) {\n event = new Start(eventJson.inquiryId, eventJson.sessionToken);\n } else if (isPageChange(eventJson)) {\n event = new PageChange(eventJson.name, eventJson.path);\n } else {\n event = null;\n }\n\n return event;\n };\n}\n"],"mappings":";;;WAIiBA,YAAY;AAAA,WAAAC,aAAA;EAOpB,MAAMC,KAAK,CAAyB;IAKzCC,WAAWA,CAACC,SAAiB,EAAEC,YAAoB,EAAE;MAAAC,eAAA,eAJ7B,OAAO;MAAAA,eAAA;MAAAA,eAAA;MAK7B,IAAI,CAACF,SAAS,GAAGA,SAAS;MAC1B,IAAI,CAACC,YAAY,GAAGA,YAAY;IAClC;EACF;EAACJ,aAAA,CAAAC,KAAA,GAAAA,KAAA;EAWM,MAAMK,UAAU,CAAyB;IAK9CJ,WAAWA,CAACK,IAAY,EAAEC,IAAY,EAAE;MAAAH,eAAA,eAJhB,aAAa;MAAAA,eAAA;MAAAA,eAAA;MAKnC,IAAI,CAACE,IAAI,GAAGA,IAAI;MAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAClB;EACF;EAACR,aAAA,CAAAM,UAAA,GAAAA,UAAA;EAED,MAAMG,OAAO,GAAIC,KAAU,IAAqB;IAC9C,OACEA,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,CAACC,IAAI,KAAK,OAAO,IACtBD,KAAK,CAACP,SAAS,KAAKS,SAAS,IAC7BF,KAAK,CAACN,YAAY,KAAKQ,SAAS;EAEpC,CAAC;EAED,MAAMC,YAAY,GAAIH,KAAU,IAA0B;IACxD,OACEA,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,CAACC,IAAI,KAAK,aAAa,IAC5BD,KAAK,CAACH,IAAI,KAAKK,SAAS,IACxBF,KAAK,CAACF,IAAI,KAAKI,SAAS;EAE5B,CAAC;EAEM,MAAME,QAAQ,GAAAd,aAAA,CAAAc,QAAA,GAAIC,SAAc,IAA0B;IAC/D,IAAIL,KAA0B;IAE9B,IAAID,OAAO,CAACM,SAAS,CAAC,EAAE;MACtBL,KAAK,GAAG,IAAIT,KAAK,CAACc,SAAS,CAACZ,SAAS,EAAEY,SAAS,CAACX,YAAY,CAAC;IAChE,CAAC,MAAM,IAAIS,YAAY,CAACE,SAAS,CAAC,EAAE;MAClCL,KAAK,GAAG,IAAIJ,UAAU,CAACS,SAAS,CAACR,IAAI,EAAEQ,SAAS,CAACP,IAAI,CAAC;IACxD,CAAC,MAAM;MACLE,KAAK,GAAG,IAAI;IACd;IAEA,OAAOA,KAAK;EACd,CAAC;AAAC,GAtEaX,YAAY,KAAZA,YAAY","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":"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","ignoreList":[]}
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":[]}
@@ -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
@@ -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":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -7,5 +7,6 @@ export default function PersonaInquiryView(props: {
7
7
  onComplete: OnCompleteCallback;
8
8
  onCanceled: OnCanceledCallback;
9
9
  onError: OnErrorCallback;
10
+ onEvent?: OnEventCallback;
10
11
  onReady: OnReadyCallback;
11
12
  }): React.JSX.Element;
@@ -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.29.0",
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",
@@ -42,6 +42,8 @@ export namespace InquiryEvent {
42
42
 
43
43
  const isStart = (event: any): event is Start => {
44
44
  return (
45
+ event != null &&
46
+ typeof event === 'object' &&
45
47
  event.type === 'start' &&
46
48
  event.inquiryId !== undefined &&
47
49
  event.sessionToken !== undefined
@@ -50,6 +52,8 @@ export namespace InquiryEvent {
50
52
 
51
53
  const isPageChange = (event: any): event is PageChange => {
52
54
  return (
55
+ event != null &&
56
+ typeof event === 'object' &&
53
57
  event.type === 'page_change' &&
54
58
  event.name !== undefined &&
55
59
  event.path !== undefined
@@ -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
+ }