react-native-persona 2.41.0 → 2.41.1-beta.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/RNPersonaInquiry2.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/withpersona/sdk2/reactnative/InlineInquiryWrapperFragment.kt +19 -2
- package/android/src/main/java/com/withpersona/sdk2/reactnative/PersonaInquiryPackage2.java +5 -3
- package/android/src/main/java/com/withpersona/sdk2/reactnative/PersonaInquiryViewManager.java +39 -8
- package/lib/commonjs/PersonaInquiryView.js +25 -12
- package/lib/commonjs/PersonaInquiryView.js.map +1 -1
- package/lib/module/PersonaInquiryView.js +25 -12
- package/lib/module/PersonaInquiryView.js.map +1 -1
- package/package.json +1 -1
- package/src/PersonaInquiryView.tsx +32 -18
package/android/build.gradle
CHANGED
|
@@ -72,7 +72,7 @@ dependencies {
|
|
|
72
72
|
implementation("com.facebook.react:react-android:+")
|
|
73
73
|
|
|
74
74
|
// NB: be sure to bump `nfc-impl` in example/android/app/build.gradle as well
|
|
75
|
-
implementation 'com.withpersona.sdk2:inquiry:2.41.
|
|
75
|
+
implementation 'com.withpersona.sdk2:inquiry:2.41.2-beta.1-SNAPSHOT'
|
|
76
76
|
implementation("androidx.fragment:fragment:1.8.6")
|
|
77
77
|
|
|
78
78
|
// Kotlin
|
package/android/src/main/java/com/withpersona/sdk2/reactnative/InlineInquiryWrapperFragment.kt
CHANGED
|
@@ -8,9 +8,13 @@ import android.widget.FrameLayout
|
|
|
8
8
|
import androidx.fragment.app.Fragment
|
|
9
9
|
import androidx.lifecycle.lifecycleScope
|
|
10
10
|
import com.withpersona.sdk2.inquiry.ExperimentalInlineApi
|
|
11
|
+
import com.withpersona.sdk2.inquiry.InquiryResponse
|
|
11
12
|
import com.withpersona.sdk2.inquiry.inline_inquiry.InlineInquiryController
|
|
12
13
|
import com.withpersona.sdk2.inquiry.inline_inquiry.InlineInquiryScreen
|
|
14
|
+
import com.withpersona.sdk2.inquiry.internal.InquiryIntentKeys
|
|
13
15
|
import com.withpersona.sdk2.inquiry.types.DEFAULT_REQUEST_KEY
|
|
16
|
+
import com.withpersona.sdk2.inquiry.types.InquiryErrorMessages
|
|
17
|
+
import com.withpersona.sdk2.inquiry.types.collected_data.ErrorCode
|
|
14
18
|
import kotlinx.coroutines.launch
|
|
15
19
|
|
|
16
20
|
/**
|
|
@@ -71,11 +75,24 @@ class InlineInquiryWrapperFragment : Fragment(), InlineInquiryController {
|
|
|
71
75
|
// Only add the fragment on first launch. On save/restore, the fragment manager should
|
|
72
76
|
// restore the fragment for us.
|
|
73
77
|
if (savedInstanceState == null) {
|
|
74
|
-
inquiryFragment
|
|
78
|
+
val inquiryFragment = inquiryFragment
|
|
79
|
+
if (inquiryFragment != null) {
|
|
75
80
|
childFragmentManager
|
|
76
81
|
.beginTransaction()
|
|
77
|
-
.add(R.id.pi2_rn_wrapper_fragment_frame_layout,
|
|
82
|
+
.add(R.id.pi2_rn_wrapper_fragment_frame_layout, inquiryFragment)
|
|
78
83
|
.commit()
|
|
84
|
+
} else {
|
|
85
|
+
parentFragmentManager.setFragmentResult(
|
|
86
|
+
DEFAULT_REQUEST_KEY,
|
|
87
|
+
Bundle().apply {
|
|
88
|
+
putString(
|
|
89
|
+
InquiryIntentKeys.PERSONA_ACTIVITY_RESULT,
|
|
90
|
+
InquiryIntentKeys.Status.INQUIRY_ERROR.name,
|
|
91
|
+
)
|
|
92
|
+
putString(InquiryIntentKeys.ERROR_DEBUG_MESSAGE, InquiryErrorMessages.unexpectedError)
|
|
93
|
+
putParcelable(InquiryIntentKeys.ERROR_CODE, ErrorCode.UnexpectedError)
|
|
94
|
+
}
|
|
95
|
+
)
|
|
79
96
|
}
|
|
80
97
|
}
|
|
81
98
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
package com.withpersona.sdk2.reactnative;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
3
5
|
import com.facebook.react.ReactPackage;
|
|
4
6
|
import com.facebook.react.bridge.NativeModule;
|
|
5
7
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
@@ -11,14 +13,14 @@ import java.util.List;
|
|
|
11
13
|
@SuppressWarnings("unused") // react uses this
|
|
12
14
|
public class PersonaInquiryPackage2 implements ReactPackage {
|
|
13
15
|
@Override
|
|
14
|
-
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
|
16
|
+
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
|
|
15
17
|
return Arrays.<NativeModule>asList(new PersonaInquiryModule2(reactContext));
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
@Override
|
|
19
|
-
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
21
|
+
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
|
|
20
22
|
return Arrays.<ViewManager>asList(
|
|
21
|
-
new PersonaInquiryViewManager()
|
|
23
|
+
new PersonaInquiryViewManager(reactContext)
|
|
22
24
|
);
|
|
23
25
|
}
|
|
24
26
|
}
|
package/android/src/main/java/com/withpersona/sdk2/reactnative/PersonaInquiryViewManager.java
CHANGED
|
@@ -14,6 +14,7 @@ import androidx.annotation.Nullable;
|
|
|
14
14
|
import androidx.fragment.app.Fragment;
|
|
15
15
|
import androidx.fragment.app.FragmentActivity;
|
|
16
16
|
|
|
17
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
17
18
|
import com.facebook.react.bridge.ReadableArray;
|
|
18
19
|
import com.facebook.react.bridge.ReadableMap;
|
|
19
20
|
import com.facebook.react.common.MapBuilder;
|
|
@@ -23,20 +24,28 @@ import com.facebook.react.uimanager.annotations.ReactProp;
|
|
|
23
24
|
import com.withpersona.sdk2.inquiry.Inquiry;
|
|
24
25
|
import com.withpersona.sdk2.inquiry.InquiryResponse;
|
|
25
26
|
import com.withpersona.sdk2.inquiry.inline_inquiry.InquiryEvent;
|
|
27
|
+
import com.withpersona.sdk2.inquiry.types.collected_data.ErrorCode;
|
|
26
28
|
|
|
27
29
|
import java.util.Map;
|
|
28
30
|
|
|
29
31
|
class PersonaInquiryViewManager extends ViewGroupManager<FrameLayout> {
|
|
30
32
|
public static final String REACT_CLASS = "PersonaInquiryView";
|
|
33
|
+
|
|
34
|
+
private static final String SDK_CONFIGURATION_ERROR = "The SDK is misconfigured.";
|
|
35
|
+
|
|
31
36
|
public final int COMMAND_CREATE = 1;
|
|
32
37
|
|
|
33
|
-
@
|
|
34
|
-
|
|
38
|
+
@NonNull
|
|
39
|
+
ReactApplicationContext reactContext;
|
|
35
40
|
|
|
36
41
|
@Nullable
|
|
37
42
|
private FrameLayout pendingRoot;
|
|
38
43
|
private int pendingViewId = -1;
|
|
39
44
|
|
|
45
|
+
public PersonaInquiryViewManager(@NonNull ReactApplicationContext reactContext) {
|
|
46
|
+
this.reactContext = reactContext;
|
|
47
|
+
}
|
|
48
|
+
|
|
40
49
|
@NonNull
|
|
41
50
|
@Override
|
|
42
51
|
public String getName() {
|
|
@@ -49,7 +58,6 @@ class PersonaInquiryViewManager extends ViewGroupManager<FrameLayout> {
|
|
|
49
58
|
@NonNull
|
|
50
59
|
@Override
|
|
51
60
|
public FrameLayout createViewInstance(@NonNull ThemedReactContext reactContext) {
|
|
52
|
-
this.reactContext = reactContext;
|
|
53
61
|
FrameLayout frameLayout = new FrameLayout(reactContext);
|
|
54
62
|
frameLayout.setLayoutParams(new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT));
|
|
55
63
|
return frameLayout;
|
|
@@ -135,13 +143,9 @@ class PersonaInquiryViewManager extends ViewGroupManager<FrameLayout> {
|
|
|
135
143
|
}
|
|
136
144
|
|
|
137
145
|
/**
|
|
138
|
-
* Replace
|
|
146
|
+
* Replace React Native view with an Inquiry fragment
|
|
139
147
|
*/
|
|
140
148
|
public void createFragment(FrameLayout root, int reactNativeViewId) {
|
|
141
|
-
if (reactContext == null) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
149
|
ViewGroup parentView = root.findViewById(reactNativeViewId);
|
|
146
150
|
setupLayout(parentView);
|
|
147
151
|
|
|
@@ -152,6 +156,15 @@ class PersonaInquiryViewManager extends ViewGroupManager<FrameLayout> {
|
|
|
152
156
|
}
|
|
153
157
|
|
|
154
158
|
if (inquiry == null) {
|
|
159
|
+
new InquiryResultEmitter(reactContext)
|
|
160
|
+
.emitResponse(
|
|
161
|
+
new InquiryResponse.Error(
|
|
162
|
+
SDK_CONFIGURATION_ERROR,
|
|
163
|
+
ErrorCode.SdkConfigurationError,
|
|
164
|
+
"Invalid inquiry arguments."
|
|
165
|
+
),
|
|
166
|
+
root
|
|
167
|
+
);
|
|
155
168
|
return;
|
|
156
169
|
}
|
|
157
170
|
|
|
@@ -161,12 +174,30 @@ class PersonaInquiryViewManager extends ViewGroupManager<FrameLayout> {
|
|
|
161
174
|
.createFragment();
|
|
162
175
|
|
|
163
176
|
if (inquiryFragment == null) {
|
|
177
|
+
new InquiryResultEmitter(reactContext)
|
|
178
|
+
.emitResponse(
|
|
179
|
+
new InquiryResponse.Error(
|
|
180
|
+
SDK_CONFIGURATION_ERROR,
|
|
181
|
+
ErrorCode.SdkConfigurationError,
|
|
182
|
+
"Unable to instantiate fragment."
|
|
183
|
+
),
|
|
184
|
+
root
|
|
185
|
+
);
|
|
164
186
|
return;
|
|
165
187
|
}
|
|
166
188
|
|
|
167
189
|
FragmentActivity activity = (FragmentActivity) reactContext.getCurrentActivity();
|
|
168
190
|
|
|
169
191
|
if (activity == null) {
|
|
192
|
+
new InquiryResultEmitter(reactContext)
|
|
193
|
+
.emitResponse(
|
|
194
|
+
new InquiryResponse.Error(
|
|
195
|
+
SDK_CONFIGURATION_ERROR,
|
|
196
|
+
ErrorCode.SdkConfigurationError,
|
|
197
|
+
"Unable to get current React Native activity."
|
|
198
|
+
),
|
|
199
|
+
root
|
|
200
|
+
);
|
|
170
201
|
return;
|
|
171
202
|
}
|
|
172
203
|
|
|
@@ -10,18 +10,6 @@ var _reactNative = require("react-native");
|
|
|
10
10
|
var _PersonaInquiryViewManager = require("./PersonaInquiryViewManager");
|
|
11
11
|
var _util = require("./util");
|
|
12
12
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
-
const create = viewId => {
|
|
14
|
-
try {
|
|
15
|
-
const viewManagerConfig = _reactNative.UIManager.getViewManagerConfig('PersonaInquiryView');
|
|
16
|
-
if (!viewManagerConfig || !viewManagerConfig.Commands) {
|
|
17
|
-
console.error('PersonaInquiryView config not found');
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
_reactNative.UIManager.dispatchViewManagerCommand(viewId, viewManagerConfig.Commands.create, [viewId]);
|
|
21
|
-
} catch (error) {
|
|
22
|
-
console.error('Error dispatching create command:', error);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
13
|
let onReadyCalled = false;
|
|
26
14
|
let onReadyCallback = () => {};
|
|
27
15
|
const onPersonaInquiryViewEvent = event => {
|
|
@@ -41,6 +29,31 @@ const resetOnReadyState = () => {
|
|
|
41
29
|
};
|
|
42
30
|
function PersonaInquiryView(props) {
|
|
43
31
|
const ref = (0, _react.useRef)(null);
|
|
32
|
+
const create = viewId => {
|
|
33
|
+
try {
|
|
34
|
+
if (viewId == null) {
|
|
35
|
+
(0, _util.callOnErrorCallback)({
|
|
36
|
+
debugMessage: 'PersonaInquiryView not found',
|
|
37
|
+
errorCode: 'UnexpectedError'
|
|
38
|
+
}, props.onError);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const viewManagerConfig = _reactNative.UIManager.getViewManagerConfig('PersonaInquiryView');
|
|
42
|
+
if (!viewManagerConfig || !viewManagerConfig.Commands) {
|
|
43
|
+
(0, _util.callOnErrorCallback)({
|
|
44
|
+
debugMessage: 'PersonaInquiryView config not found',
|
|
45
|
+
errorCode: 'UnexpectedError'
|
|
46
|
+
}, props.onError);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
_reactNative.UIManager.dispatchViewManagerCommand(viewId, viewManagerConfig.Commands.create, [viewId]);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
(0, _util.callOnErrorCallback)({
|
|
52
|
+
debugMessage: 'Error dispatching create command.',
|
|
53
|
+
errorCode: 'UnexpectedError'
|
|
54
|
+
}, props.onError);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
44
57
|
(0, _react.useEffect)(() => {
|
|
45
58
|
const viewId = (0, _reactNative.findNodeHandle)(ref.current);
|
|
46
59
|
onReadyCallback = () => {
|
|
@@ -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","
|
|
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","onReadyCalled","onReadyCallback","onPersonaInquiryViewEvent","event","type","setTimeout","exports","resetOnReadyState","PersonaInquiryView","props","ref","useRef","create","viewId","callOnErrorCallback","debugMessage","errorCode","onError","viewManagerConfig","UIManager","getViewManagerConfig","Commands","dispatchViewManagerCommand","error","useEffect","findNodeHandle","current","onReady","_onComplete","useCallback","callOnCompleteCallback","nativeEvent","onComplete","_onCanceled","callOnCanceledCallback","onCanceled","_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\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\nconst resetOnReadyState = () => {\n onReadyCalled = false;\n onReadyCallback = () => {};\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 const create = (viewId: number | null) => {\n try {\n if (viewId == null) {\n callOnErrorCallback({ \n debugMessage: 'PersonaInquiryView not found', \n errorCode: 'UnexpectedError' \n }, props.onError);\n return;\n }\n\n const viewManagerConfig =\n UIManager.getViewManagerConfig('PersonaInquiryView');\n if (!viewManagerConfig || !viewManagerConfig.Commands) {\n callOnErrorCallback({ \n debugMessage: 'PersonaInquiryView config not found', \n errorCode: 'UnexpectedError' \n }, props.onError);\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n viewManagerConfig.Commands.create,\n [viewId]\n );\n } catch (error) {\n callOnErrorCallback({ \n debugMessage: 'Error dispatching create command.', \n errorCode: 'UnexpectedError' \n }, props.onError);\n }\n };\n\n useEffect(() => {\n const viewId = findNodeHandle(ref.current);\n\n onReadyCallback = () => {\n props.onReady();\n };\n\n create(viewId);\n\n return () => {\n resetOnReadyState();\n };\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":[]}
|
|
@@ -2,18 +2,6 @@ import React, { useCallback, useEffect, useRef } from 'react';
|
|
|
2
2
|
import { findNodeHandle, UIManager } from 'react-native';
|
|
3
3
|
import { PersonaInquiryViewManager } from './PersonaInquiryViewManager';
|
|
4
4
|
import { callOnCanceledCallback, callOnCompleteCallback, callOnErrorCallback, callOnEventCallback, callOnReadyCallback } from './util';
|
|
5
|
-
const create = viewId => {
|
|
6
|
-
try {
|
|
7
|
-
const viewManagerConfig = UIManager.getViewManagerConfig('PersonaInquiryView');
|
|
8
|
-
if (!viewManagerConfig || !viewManagerConfig.Commands) {
|
|
9
|
-
console.error('PersonaInquiryView config not found');
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
UIManager.dispatchViewManagerCommand(viewId, viewManagerConfig.Commands.create, [viewId]);
|
|
13
|
-
} catch (error) {
|
|
14
|
-
console.error('Error dispatching create command:', error);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
5
|
let onReadyCalled = false;
|
|
18
6
|
let onReadyCallback = () => {};
|
|
19
7
|
export const onPersonaInquiryViewEvent = event => {
|
|
@@ -32,6 +20,31 @@ const resetOnReadyState = () => {
|
|
|
32
20
|
};
|
|
33
21
|
export default function PersonaInquiryView(props) {
|
|
34
22
|
const ref = useRef(null);
|
|
23
|
+
const create = viewId => {
|
|
24
|
+
try {
|
|
25
|
+
if (viewId == null) {
|
|
26
|
+
callOnErrorCallback({
|
|
27
|
+
debugMessage: 'PersonaInquiryView not found',
|
|
28
|
+
errorCode: 'UnexpectedError'
|
|
29
|
+
}, props.onError);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const viewManagerConfig = UIManager.getViewManagerConfig('PersonaInquiryView');
|
|
33
|
+
if (!viewManagerConfig || !viewManagerConfig.Commands) {
|
|
34
|
+
callOnErrorCallback({
|
|
35
|
+
debugMessage: 'PersonaInquiryView config not found',
|
|
36
|
+
errorCode: 'UnexpectedError'
|
|
37
|
+
}, props.onError);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
UIManager.dispatchViewManagerCommand(viewId, viewManagerConfig.Commands.create, [viewId]);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
callOnErrorCallback({
|
|
43
|
+
debugMessage: 'Error dispatching create command.',
|
|
44
|
+
errorCode: 'UnexpectedError'
|
|
45
|
+
}, props.onError);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
35
48
|
useEffect(() => {
|
|
36
49
|
const viewId = findNodeHandle(ref.current);
|
|
37
50
|
onReadyCallback = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useRef","findNodeHandle","UIManager","PersonaInquiryViewManager","callOnCanceledCallback","callOnCompleteCallback","callOnErrorCallback","callOnEventCallback","callOnReadyCallback","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useRef","findNodeHandle","UIManager","PersonaInquiryViewManager","callOnCanceledCallback","callOnCompleteCallback","callOnErrorCallback","callOnEventCallback","callOnReadyCallback","onReadyCalled","onReadyCallback","onPersonaInquiryViewEvent","event","type","setTimeout","resetOnReadyState","PersonaInquiryView","props","ref","create","viewId","debugMessage","errorCode","onError","viewManagerConfig","getViewManagerConfig","Commands","dispatchViewManagerCommand","error","current","onReady","_onComplete","nativeEvent","onComplete","_onCanceled","onCanceled","_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\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\nconst resetOnReadyState = () => {\n onReadyCalled = false;\n onReadyCallback = () => {};\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 const create = (viewId: number | null) => {\n try {\n if (viewId == null) {\n callOnErrorCallback({ \n debugMessage: 'PersonaInquiryView not found', \n errorCode: 'UnexpectedError' \n }, props.onError);\n return;\n }\n\n const viewManagerConfig =\n UIManager.getViewManagerConfig('PersonaInquiryView');\n if (!viewManagerConfig || !viewManagerConfig.Commands) {\n callOnErrorCallback({ \n debugMessage: 'PersonaInquiryView config not found', \n errorCode: 'UnexpectedError' \n }, props.onError);\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n viewManagerConfig.Commands.create,\n [viewId]\n );\n } catch (error) {\n callOnErrorCallback({ \n debugMessage: 'Error dispatching create command.', \n errorCode: 'UnexpectedError' \n }, props.onError);\n }\n };\n\n useEffect(() => {\n const viewId = findNodeHandle(ref.current);\n\n onReadyCallback = () => {\n props.onReady();\n };\n\n create(viewId);\n\n return () => {\n resetOnReadyState();\n };\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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-persona",
|
|
3
3
|
"title": "React Native Persona",
|
|
4
|
-
"version": "2.41.
|
|
4
|
+
"version": "2.41.1-beta.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",
|
|
@@ -17,24 +17,6 @@ import type {
|
|
|
17
17
|
} from './callbacks';
|
|
18
18
|
import type { InquiryEvent } from './InquiryEvent';
|
|
19
19
|
|
|
20
|
-
const create = (viewId: number | null) => {
|
|
21
|
-
try {
|
|
22
|
-
const viewManagerConfig =
|
|
23
|
-
UIManager.getViewManagerConfig('PersonaInquiryView');
|
|
24
|
-
if (!viewManagerConfig || !viewManagerConfig.Commands) {
|
|
25
|
-
console.error('PersonaInquiryView config not found');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
UIManager.dispatchViewManagerCommand(
|
|
29
|
-
viewId,
|
|
30
|
-
viewManagerConfig.Commands.create,
|
|
31
|
-
[viewId]
|
|
32
|
-
);
|
|
33
|
-
} catch (error) {
|
|
34
|
-
console.error('Error dispatching create command:', error);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
20
|
let onReadyCalled = false;
|
|
39
21
|
let onReadyCallback = () => {};
|
|
40
22
|
export const onPersonaInquiryViewEvent: OnEventCallback = (
|
|
@@ -67,6 +49,38 @@ export default function PersonaInquiryView(props: {
|
|
|
67
49
|
}) {
|
|
68
50
|
const ref = useRef(null);
|
|
69
51
|
|
|
52
|
+
const create = (viewId: number | null) => {
|
|
53
|
+
try {
|
|
54
|
+
if (viewId == null) {
|
|
55
|
+
callOnErrorCallback({
|
|
56
|
+
debugMessage: 'PersonaInquiryView not found',
|
|
57
|
+
errorCode: 'UnexpectedError'
|
|
58
|
+
}, props.onError);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const viewManagerConfig =
|
|
63
|
+
UIManager.getViewManagerConfig('PersonaInquiryView');
|
|
64
|
+
if (!viewManagerConfig || !viewManagerConfig.Commands) {
|
|
65
|
+
callOnErrorCallback({
|
|
66
|
+
debugMessage: 'PersonaInquiryView config not found',
|
|
67
|
+
errorCode: 'UnexpectedError'
|
|
68
|
+
}, props.onError);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
UIManager.dispatchViewManagerCommand(
|
|
72
|
+
viewId,
|
|
73
|
+
viewManagerConfig.Commands.create,
|
|
74
|
+
[viewId]
|
|
75
|
+
);
|
|
76
|
+
} catch (error) {
|
|
77
|
+
callOnErrorCallback({
|
|
78
|
+
debugMessage: 'Error dispatching create command.',
|
|
79
|
+
errorCode: 'UnexpectedError'
|
|
80
|
+
}, props.onError);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
70
84
|
useEffect(() => {
|
|
71
85
|
const viewId = findNodeHandle(ref.current);
|
|
72
86
|
|