@rownd/react-native 0.2.5 → 2.2.0
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/LICENSE +1 -2
- package/README.md +34 -52
- package/android/build.gradle +127 -37
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +1 -1
- package/android/src/main/java/com/reactnativerowndplugin/RowndPluginModule.kt +98 -0
- package/android/src/main/java/com/reactnativerowndplugin/RowndPluginPackage.kt +16 -0
- package/ios/{ReactNative.xcodeproj → Rownd.xcodeproj}/project.pbxproj +13 -12
- package/ios/RowndPlugin-Bridging-Header.h +3 -0
- package/ios/RowndPlugin.m +26 -0
- package/ios/RowndPlugin.swift +83 -0
- package/ios/RowndPluginEventEmitter.m +12 -0
- package/ios/RowndPluginEventEmitter.swift +19 -0
- package/lib/commonjs/components/GlobalContext.js +32 -298
- package/lib/commonjs/components/GlobalContext.js.map +1 -1
- package/lib/commonjs/components/{BottomSheetTextInput/types.js → GlobalContext.types.js} +1 -1
- package/lib/commonjs/components/GlobalContext.types.js.map +1 -0
- package/lib/commonjs/constants/action.js +13 -0
- package/lib/commonjs/constants/action.js.map +1 -0
- package/lib/commonjs/hooks/rownd.js +15 -146
- package/lib/commonjs/hooks/rownd.js.map +1 -1
- package/lib/commonjs/index.js +2 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/reducer/rowndReducer.js +89 -0
- package/lib/commonjs/reducer/rowndReducer.js.map +1 -0
- package/lib/commonjs/utils/config.js +0 -26
- package/lib/commonjs/utils/config.js.map +1 -1
- package/lib/commonjs/utils/nativeModule.js +72 -0
- package/lib/commonjs/utils/nativeModule.js.map +1 -0
- package/lib/module/components/GlobalContext.js +30 -293
- package/lib/module/components/GlobalContext.js.map +1 -1
- package/lib/module/components/GlobalContext.types.js +2 -0
- package/lib/module/components/GlobalContext.types.js.map +1 -0
- package/lib/module/constants/action.js +6 -0
- package/lib/module/constants/action.js.map +1 -0
- package/lib/module/hooks/rownd.js +12 -137
- package/lib/module/hooks/rownd.js.map +1 -1
- package/lib/module/index.js +2 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/reducer/rowndReducer.js +78 -0
- package/lib/module/reducer/rowndReducer.js.map +1 -0
- package/lib/module/utils/config.js +1 -16
- package/lib/module/utils/config.js.map +1 -1
- package/lib/module/utils/nativeModule.js +48 -0
- package/lib/module/utils/nativeModule.js.map +1 -0
- package/lib/typescript/components/GlobalContext.d.ts +13 -0
- package/lib/typescript/{src/components/GlobalContext.d.ts → components/GlobalContext.types.d.ts} +9 -35
- package/lib/typescript/constants/action.d.ts +7 -0
- package/lib/typescript/{src/hooks → hooks}/rownd.d.ts +10 -13
- package/lib/typescript/index.d.ts +3 -0
- package/lib/typescript/reducer/rowndReducer.d.ts +4 -0
- package/lib/typescript/utils/config.d.ts +10 -0
- package/lib/typescript/utils/nativeModule.d.ts +10 -0
- package/package.json +36 -56
- package/rownd-react-native.podspec +36 -0
- package/src/components/GlobalContext.tsx +47 -457
- package/src/components/GlobalContext.types.ts +105 -0
- package/src/constants/action.ts +8 -0
- package/src/hooks/rownd.ts +29 -147
- package/src/index.tsx +2 -4
- package/src/reducer/rowndReducer.ts +78 -0
- package/src/utils/config.ts +0 -27
- package/src/utils/nativeModule.ts +69 -0
- package/android/src/main/java/com/reactnative/ReactNativePackage.java +0 -22
- package/android/src/main/java/com/reactnative/ReactNativeViewManager.java +0 -31
- package/ios/ReactNativeViewManager.m +0 -34
- package/lib/commonjs/assets/images/checkmark--filled.svg +0 -12
- package/lib/commonjs/assets/images/email-verify-waiting.svg +0 -36
- package/lib/commonjs/assets/images/error-icon-material.svg +0 -1
- package/lib/commonjs/assets/images/phone-verify-waiting.svg +0 -26
- package/lib/commonjs/components/AuthenticatedComponent.js +0 -35
- package/lib/commonjs/components/AuthenticatedComponent.js.map +0 -1
- package/lib/commonjs/components/AutoSigninDialog.js +0 -132
- package/lib/commonjs/components/AutoSigninDialog.js.map +0 -1
- package/lib/commonjs/components/BottomSheetTextInput/BottomSheetTextInput.js +0 -65
- package/lib/commonjs/components/BottomSheetTextInput/BottomSheetTextInput.js.map +0 -1
- package/lib/commonjs/components/BottomSheetTextInput/index.js +0 -24
- package/lib/commonjs/components/BottomSheetTextInput/index.js.map +0 -1
- package/lib/commonjs/components/BottomSheetTextInput/types.js.map +0 -1
- package/lib/commonjs/components/DarkText.js +0 -35
- package/lib/commonjs/components/DarkText.js.map +0 -1
- package/lib/commonjs/components/DefaultContext.js +0 -266
- package/lib/commonjs/components/DefaultContext.js.map +0 -1
- package/lib/commonjs/components/RowndComponents.js +0 -25
- package/lib/commonjs/components/RowndComponents.js.map +0 -1
- package/lib/commonjs/components/RowndProvider.js +0 -55
- package/lib/commonjs/components/RowndProvider.js.map +0 -1
- package/lib/commonjs/components/SignIn.js +0 -644
- package/lib/commonjs/components/SignIn.js.map +0 -1
- package/lib/commonjs/components/images/CheckmarkFilled.js +0 -40
- package/lib/commonjs/components/images/CheckmarkFilled.js.map +0 -1
- package/lib/commonjs/components/images/EmailVerifyWaiting.js +0 -100
- package/lib/commonjs/components/images/EmailVerifyWaiting.js.map +0 -1
- package/lib/commonjs/components/images/ErrorIcon.js +0 -31
- package/lib/commonjs/components/images/ErrorIcon.js.map +0 -1
- package/lib/commonjs/components/images/PhoneVerifyWaiting.js +0 -91
- package/lib/commonjs/components/images/PhoneVerifyWaiting.js.map +0 -1
- package/lib/commonjs/data/actions.js +0 -26
- package/lib/commonjs/data/actions.js.map +0 -1
- package/lib/commonjs/hooks/api.js +0 -155
- package/lib/commonjs/hooks/api.js.map +0 -1
- package/lib/commonjs/hooks/debounce.js +0 -38
- package/lib/commonjs/hooks/debounce.js.map +0 -1
- package/lib/commonjs/hooks/fingerprint.js +0 -176
- package/lib/commonjs/hooks/fingerprint.js.map +0 -1
- package/lib/commonjs/hooks/index.js +0 -48
- package/lib/commonjs/hooks/index.js.map +0 -1
- package/lib/commonjs/hooks/interval.js +0 -31
- package/lib/commonjs/hooks/interval.js.map +0 -1
- package/lib/commonjs/hooks/nav.js +0 -39
- package/lib/commonjs/hooks/nav.js.map +0 -1
- package/lib/commonjs/index.tsx.bak +0 -26
- package/lib/commonjs/types.js +0 -2
- package/lib/commonjs/types.js.map +0 -1
- package/lib/commonjs/utils/events.js +0 -57
- package/lib/commonjs/utils/events.js.map +0 -1
- package/lib/commonjs/utils/form.js +0 -46
- package/lib/commonjs/utils/form.js.map +0 -1
- package/lib/commonjs/utils/queue.js +0 -117
- package/lib/commonjs/utils/queue.js.map +0 -1
- package/lib/commonjs/utils/storage.js +0 -15
- package/lib/commonjs/utils/storage.js.map +0 -1
- package/lib/commonjs/utils/tokens.js +0 -35
- package/lib/commonjs/utils/tokens.js.map +0 -1
- package/lib/commonjs/utils/user-data.js +0 -21
- package/lib/commonjs/utils/user-data.js.map +0 -1
- package/lib/module/assets/images/checkmark--filled.svg +0 -12
- package/lib/module/assets/images/email-verify-waiting.svg +0 -36
- package/lib/module/assets/images/error-icon-material.svg +0 -1
- package/lib/module/assets/images/phone-verify-waiting.svg +0 -26
- package/lib/module/components/AuthenticatedComponent.js +0 -24
- package/lib/module/components/AuthenticatedComponent.js.map +0 -1
- package/lib/module/components/AutoSigninDialog.js +0 -110
- package/lib/module/components/AutoSigninDialog.js.map +0 -1
- package/lib/module/components/BottomSheetTextInput/BottomSheetTextInput.js +0 -52
- package/lib/module/components/BottomSheetTextInput/BottomSheetTextInput.js.map +0 -1
- package/lib/module/components/BottomSheetTextInput/index.js +0 -5
- package/lib/module/components/BottomSheetTextInput/index.js.map +0 -1
- package/lib/module/components/BottomSheetTextInput/types.js +0 -2
- package/lib/module/components/BottomSheetTextInput/types.js.map +0 -1
- package/lib/module/components/DarkText.js +0 -24
- package/lib/module/components/DarkText.js.map +0 -1
- package/lib/module/components/DefaultContext.js +0 -244
- package/lib/module/components/DefaultContext.js.map +0 -1
- package/lib/module/components/RowndComponents.js +0 -12
- package/lib/module/components/RowndComponents.js.map +0 -1
- package/lib/module/components/RowndProvider.js +0 -39
- package/lib/module/components/RowndProvider.js.map +0 -1
- package/lib/module/components/SignIn.js +0 -616
- package/lib/module/components/SignIn.js.map +0 -1
- package/lib/module/components/images/CheckmarkFilled.js +0 -27
- package/lib/module/components/images/CheckmarkFilled.js.map +0 -1
- package/lib/module/components/images/EmailVerifyWaiting.js +0 -87
- package/lib/module/components/images/EmailVerifyWaiting.js.map +0 -1
- package/lib/module/components/images/ErrorIcon.js +0 -18
- package/lib/module/components/images/ErrorIcon.js.map +0 -1
- package/lib/module/components/images/PhoneVerifyWaiting.js +0 -78
- package/lib/module/components/images/PhoneVerifyWaiting.js.map +0 -1
- package/lib/module/data/actions.js +0 -19
- package/lib/module/data/actions.js.map +0 -1
- package/lib/module/hooks/api.js +0 -135
- package/lib/module/hooks/api.js.map +0 -1
- package/lib/module/hooks/debounce.js +0 -29
- package/lib/module/hooks/debounce.js.map +0 -1
- package/lib/module/hooks/fingerprint.js +0 -157
- package/lib/module/hooks/fingerprint.js.map +0 -1
- package/lib/module/hooks/index.js +0 -7
- package/lib/module/hooks/index.js.map +0 -1
- package/lib/module/hooks/interval.js +0 -23
- package/lib/module/hooks/interval.js.map +0 -1
- package/lib/module/hooks/nav.js +0 -30
- package/lib/module/hooks/nav.js.map +0 -1
- package/lib/module/index.tsx.bak +0 -26
- package/lib/module/types.js +0 -2
- package/lib/module/types.js.map +0 -1
- package/lib/module/utils/events.js +0 -45
- package/lib/module/utils/events.js.map +0 -1
- package/lib/module/utils/form.js +0 -34
- package/lib/module/utils/form.js.map +0 -1
- package/lib/module/utils/queue.js +0 -109
- package/lib/module/utils/queue.js.map +0 -1
- package/lib/module/utils/storage.js +0 -6
- package/lib/module/utils/storage.js.map +0 -1
- package/lib/module/utils/tokens.js +0 -24
- package/lib/module/utils/tokens.js.map +0 -1
- package/lib/module/utils/user-data.js +0 -14
- package/lib/module/utils/user-data.js.map +0 -1
- package/lib/package.json +0 -173
- package/lib/typescript/src/components/AuthenticatedComponent.d.ts +0 -7
- package/lib/typescript/src/components/AutoSigninDialog.d.ts +0 -2
- package/lib/typescript/src/components/BottomSheetTextInput/BottomSheetTextInput.d.ts +0 -4
- package/lib/typescript/src/components/BottomSheetTextInput/index.d.ts +0 -2
- package/lib/typescript/src/components/BottomSheetTextInput/types.d.ts +0 -3
- package/lib/typescript/src/components/DarkText.d.ts +0 -3
- package/lib/typescript/src/components/DefaultContext.d.ts +0 -12
- package/lib/typescript/src/components/RowndComponents.d.ts +0 -2
- package/lib/typescript/src/components/RowndProvider.d.ts +0 -8
- package/lib/typescript/src/components/SignIn.d.ts +0 -2
- package/lib/typescript/src/components/images/CheckmarkFilled.d.ts +0 -4
- package/lib/typescript/src/components/images/EmailVerifyWaiting.d.ts +0 -4
- package/lib/typescript/src/components/images/ErrorIcon.d.ts +0 -4
- package/lib/typescript/src/components/images/PhoneVerifyWaiting.d.ts +0 -4
- package/lib/typescript/src/data/actions.d.ts +0 -20
- package/lib/typescript/src/hooks/api.d.ts +0 -12
- package/lib/typescript/src/hooks/debounce.d.ts +0 -5
- package/lib/typescript/src/hooks/fingerprint.d.ts +0 -12
- package/lib/typescript/src/hooks/index.d.ts +0 -6
- package/lib/typescript/src/hooks/interval.d.ts +0 -2
- package/lib/typescript/src/hooks/nav.d.ts +0 -6
- package/lib/typescript/src/index.d.ts +0 -4
- package/lib/typescript/src/types.d.ts +0 -26
- package/lib/typescript/src/utils/config.d.ts +0 -18
- package/lib/typescript/src/utils/events.d.ts +0 -22
- package/lib/typescript/src/utils/form.d.ts +0 -18
- package/lib/typescript/src/utils/queue.d.ts +0 -21
- package/lib/typescript/src/utils/storage.d.ts +0 -3
- package/lib/typescript/src/utils/tokens.d.ts +0 -4
- package/lib/typescript/src/utils/user-data.d.ts +0 -3
- package/react-native.podspec +0 -19
- package/src/assets/images/checkmark--filled.svg +0 -12
- package/src/assets/images/email-verify-waiting.svg +0 -36
- package/src/assets/images/error-icon-material.svg +0 -1
- package/src/assets/images/phone-verify-waiting.svg +0 -26
- package/src/components/AuthenticatedComponent.tsx +0 -30
- package/src/components/AutoSigninDialog.tsx +0 -131
- package/src/components/BottomSheetTextInput/BottomSheetTextInput.tsx +0 -57
- package/src/components/BottomSheetTextInput/index.ts +0 -5
- package/src/components/BottomSheetTextInput/types.ts +0 -3
- package/src/components/DarkText.tsx +0 -16
- package/src/components/DefaultContext.tsx +0 -278
- package/src/components/RowndComponents.tsx +0 -18
- package/src/components/RowndProvider.tsx +0 -56
- package/src/components/SignIn.tsx +0 -797
- package/src/components/images/CheckmarkFilled.tsx +0 -30
- package/src/components/images/EmailVerifyWaiting.tsx +0 -95
- package/src/components/images/ErrorIcon.tsx +0 -11
- package/src/components/images/PhoneVerifyWaiting.tsx +0 -74
- package/src/data/actions.ts +0 -21
- package/src/hooks/api.ts +0 -162
- package/src/hooks/debounce.ts +0 -36
- package/src/hooks/fingerprint.ts +0 -217
- package/src/hooks/index.ts +0 -7
- package/src/hooks/interval.ts +0 -25
- package/src/hooks/nav.tsx +0 -29
- package/src/index.tsx.bak +0 -26
- package/src/types.ts +0 -27
- package/src/utils/events.ts +0 -54
- package/src/utils/form.tsx +0 -64
- package/src/utils/queue.ts +0 -75
- package/src/utils/storage.ts +0 -7
- package/src/utils/tokens.ts +0 -26
- package/src/utils/user-data.ts +0 -15
package/lib/commonjs/index.js
CHANGED
|
@@ -3,16 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "AuthenticatedComponent", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _AuthenticatedComponent.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
6
|
Object.defineProperty(exports, "RowndProvider", {
|
|
13
7
|
enumerable: true,
|
|
14
8
|
get: function () {
|
|
15
|
-
return
|
|
9
|
+
return _GlobalContext.RowndProvider;
|
|
16
10
|
}
|
|
17
11
|
});
|
|
18
12
|
Object.defineProperty(exports, "useRownd", {
|
|
@@ -22,11 +16,7 @@ Object.defineProperty(exports, "useRownd", {
|
|
|
22
16
|
}
|
|
23
17
|
});
|
|
24
18
|
|
|
25
|
-
var
|
|
19
|
+
var _GlobalContext = require("./components/GlobalContext");
|
|
26
20
|
|
|
27
21
|
var _rownd = require("./hooks/rownd");
|
|
28
|
-
|
|
29
|
-
var _AuthenticatedComponent = _interopRequireDefault(require("./components/AuthenticatedComponent"));
|
|
30
|
-
|
|
31
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
32
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["import { RowndProvider } from './components/GlobalContext';\nimport { useRownd } from './hooks/rownd';\n\nexport { RowndProvider, useRownd };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.initialRowndState = void 0;
|
|
7
|
+
exports.rowndReducer = rowndReducer;
|
|
8
|
+
|
|
9
|
+
var _action = require("../constants/action");
|
|
10
|
+
|
|
11
|
+
const initialRowndState = {
|
|
12
|
+
// is_initializing: false,
|
|
13
|
+
// is_container_visible: false,
|
|
14
|
+
// use_modal: false,
|
|
15
|
+
// nav: {
|
|
16
|
+
// current_route: '/',
|
|
17
|
+
// route_trigger: '',
|
|
18
|
+
// event_id: '',
|
|
19
|
+
// section: '',
|
|
20
|
+
// options: {},
|
|
21
|
+
// },
|
|
22
|
+
user: {
|
|
23
|
+
data: {
|
|
24
|
+
email: null
|
|
25
|
+
} // needs_refresh: false,
|
|
26
|
+
// redacted: [],
|
|
27
|
+
|
|
28
|
+
},
|
|
29
|
+
auth: {
|
|
30
|
+
access_token: null,
|
|
31
|
+
refresh_token: null,
|
|
32
|
+
app_id: null
|
|
33
|
+
},
|
|
34
|
+
app: {
|
|
35
|
+
schema: null,
|
|
36
|
+
config: null
|
|
37
|
+
} // local_acls: null,
|
|
38
|
+
// is_saving_user_data: false,
|
|
39
|
+
// config,
|
|
40
|
+
|
|
41
|
+
};
|
|
42
|
+
exports.initialRowndState = initialRowndState;
|
|
43
|
+
|
|
44
|
+
function rowndReducer(state, action) {
|
|
45
|
+
var _action$payload, _action$payload$user, _action$payload2, _action$payload2$user, _action$payload2$user2, _action$payload3, _action$payload3$auth, _action$payload4, _action$payload4$auth, _action$payload$appCo;
|
|
46
|
+
|
|
47
|
+
let newState;
|
|
48
|
+
|
|
49
|
+
switch (action.type) {
|
|
50
|
+
case _action.ActionType.UPDATE_STATE:
|
|
51
|
+
newState = {
|
|
52
|
+
// is_initializing: false,
|
|
53
|
+
// is_container_visible: false,
|
|
54
|
+
// use_modal: false,
|
|
55
|
+
// nav: {
|
|
56
|
+
// current_route: '/',
|
|
57
|
+
// route_trigger: '',
|
|
58
|
+
// event_id: '',
|
|
59
|
+
// section: '',
|
|
60
|
+
// options: {},
|
|
61
|
+
// },
|
|
62
|
+
user: {
|
|
63
|
+
data: { ...((_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : (_action$payload$user = _action$payload.user) === null || _action$payload$user === void 0 ? void 0 : _action$payload$user.data),
|
|
64
|
+
email: (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : (_action$payload2$user = _action$payload2.user) === null || _action$payload2$user === void 0 ? void 0 : (_action$payload2$user2 = _action$payload2$user.data) === null || _action$payload2$user2 === void 0 ? void 0 : _action$payload2$user2.email
|
|
65
|
+
} // needs_refresh: false,
|
|
66
|
+
// redacted: [],
|
|
67
|
+
|
|
68
|
+
},
|
|
69
|
+
auth: {
|
|
70
|
+
access_token: (_action$payload3 = action.payload) === null || _action$payload3 === void 0 ? void 0 : (_action$payload3$auth = _action$payload3.auth) === null || _action$payload3$auth === void 0 ? void 0 : _action$payload3$auth.access_token,
|
|
71
|
+
refresh_token: (_action$payload4 = action.payload) === null || _action$payload4 === void 0 ? void 0 : (_action$payload4$auth = _action$payload4.auth) === null || _action$payload4$auth === void 0 ? void 0 : _action$payload4$auth.refresh_token,
|
|
72
|
+
app_id: null
|
|
73
|
+
},
|
|
74
|
+
app: {
|
|
75
|
+
schema: (_action$payload$appCo = action.payload.appConfig) === null || _action$payload$appCo === void 0 ? void 0 : _action$payload$appCo.schema,
|
|
76
|
+
config: null
|
|
77
|
+
} // local_acls: null,
|
|
78
|
+
// is_saving_user_data: false,
|
|
79
|
+
// config
|
|
80
|
+
|
|
81
|
+
};
|
|
82
|
+
return newState;
|
|
83
|
+
|
|
84
|
+
default:
|
|
85
|
+
newState = state;
|
|
86
|
+
return newState;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=rowndReducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["initialRowndState","user","data","email","auth","access_token","refresh_token","app_id","app","schema","config","rowndReducer","state","action","newState","type","ActionType","UPDATE_STATE","payload","appConfig"],"sources":["rowndReducer.ts"],"sourcesContent":["import type { GlobalState } from '../components/GlobalContext.types';\nimport { ActionType, TAction } from '../constants/action';\n\nexport const initialRowndState: GlobalState = {\n // is_initializing: false,\n // is_container_visible: false,\n // use_modal: false,\n // nav: {\n // current_route: '/',\n // route_trigger: '',\n // event_id: '',\n // section: '',\n // options: {},\n // },\n user: {\n data: {\n email: null,\n },\n // needs_refresh: false,\n // redacted: [],\n },\n auth: {\n access_token: null,\n refresh_token: null,\n app_id: null,\n },\n app: {\n schema: null,\n config: null,\n },\n // local_acls: null,\n // is_saving_user_data: false,\n // config,\n};\n\nexport function rowndReducer(state: GlobalState, action: TAction): GlobalState {\n let newState: GlobalState;\n\n switch (action.type) {\n case ActionType.UPDATE_STATE:\n newState = {\n // is_initializing: false,\n // is_container_visible: false,\n // use_modal: false,\n // nav: {\n // current_route: '/',\n // route_trigger: '',\n // event_id: '',\n // section: '',\n // options: {},\n // },\n user: {\n data: {\n ...action.payload?.user?.data,\n email: action.payload?.user?.data?.email,\n },\n // needs_refresh: false,\n // redacted: [],\n },\n auth: {\n access_token: action.payload?.auth?.access_token,\n refresh_token: action.payload?.auth?.refresh_token,\n app_id: null,\n },\n app: {\n schema: action.payload.appConfig?.schema,\n config: null,\n },\n // local_acls: null,\n // is_saving_user_data: false,\n // config\n };\n return newState;\n default:\n newState = state;\n return newState;\n }\n}\n"],"mappings":";;;;;;;;AACA;;AAEO,MAAMA,iBAA8B,GAAG;EAC5C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,KAAK,EAAE;IADH,CADF,CAIJ;IACA;;EALI,CAXsC;EAkB5CC,IAAI,EAAE;IACJC,YAAY,EAAE,IADV;IAEJC,aAAa,EAAE,IAFX;IAGJC,MAAM,EAAE;EAHJ,CAlBsC;EAuB5CC,GAAG,EAAE;IACHC,MAAM,EAAE,IADL;IAEHC,MAAM,EAAE;EAFL,CAvBuC,CA2B5C;EACA;EACA;;AA7B4C,CAAvC;;;AAgCA,SAASC,YAAT,CAAsBC,KAAtB,EAA0CC,MAA1C,EAAwE;EAAA;;EAC7E,IAAIC,QAAJ;;EAEA,QAAQD,MAAM,CAACE,IAAf;IACE,KAAKC,kBAAA,CAAWC,YAAhB;MACEH,QAAQ,GAAG;QACT;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACAb,IAAI,EAAE;UACJC,IAAI,EAAE,EACJ,uBAAGW,MAAM,CAACK,OAAV,4EAAG,gBAAgBjB,IAAnB,yDAAG,qBAAsBC,IAAzB,CADI;YAEJC,KAAK,sBAAEU,MAAM,CAACK,OAAT,8EAAE,iBAAgBjB,IAAlB,oFAAE,sBAAsBC,IAAxB,2DAAE,uBAA4BC;UAF/B,CADF,CAKJ;UACA;;QANI,CAXG;QAmBTC,IAAI,EAAE;UACJC,YAAY,sBAAEQ,MAAM,CAACK,OAAT,8EAAE,iBAAgBd,IAAlB,0DAAE,sBAAsBC,YADhC;UAEJC,aAAa,sBAAEO,MAAM,CAACK,OAAT,8EAAE,iBAAgBd,IAAlB,0DAAE,sBAAsBE,aAFjC;UAGJC,MAAM,EAAE;QAHJ,CAnBG;QAwBTC,GAAG,EAAE;UACHC,MAAM,2BAAEI,MAAM,CAACK,OAAP,CAAeC,SAAjB,0DAAE,sBAA0BV,MAD/B;UAEHC,MAAM,EAAE;QAFL,CAxBI,CA4BT;QACA;QACA;;MA9BS,CAAX;MAgCA,OAAOI,QAAP;;IACF;MACEA,QAAQ,GAAGF,KAAX;MACA,OAAOE,QAAP;EArCJ;AAuCD"}
|
|
@@ -1,28 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createConfig = createConfig;
|
|
7
|
-
|
|
8
|
-
var _pickBy = _interopRequireDefault(require("lodash-es/pickBy"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
const config = {
|
|
13
|
-
baseUrl: 'https://hub.rownd.io',
|
|
14
|
-
apiUrl: 'https://api.rownd.io',
|
|
15
|
-
pdcBaseUrl: 'https://mydata.rownd.io',
|
|
16
|
-
appKey: '',
|
|
17
|
-
postLoginUrl: null,
|
|
18
|
-
postRegistrationUrl: null,
|
|
19
|
-
locationHash: null,
|
|
20
|
-
postAuthenticationApi: null
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
function createConfig(opts) {
|
|
24
|
-
return { ...config,
|
|
25
|
-
...(0, _pickBy.default)(opts)
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
2
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["config.ts"],"sourcesContent":["export interface IConfig {\n appKey: string;\n}\n\nexport type PostAuthApiSpec = {\n method: 'post' | 'put';\n url: string;\n extra_headers: { [key: string]: string };\n};\n"],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Rownd = exports.LINKING_ERROR = exports.IOSRowndEventEmitter = void 0;
|
|
7
|
+
exports.configure = configure;
|
|
8
|
+
exports.getAccessToken = getAccessToken;
|
|
9
|
+
exports.manageAccount = manageAccount;
|
|
10
|
+
exports.requestSignIn = requestSignIn;
|
|
11
|
+
exports.setUserData = setUserData;
|
|
12
|
+
exports.setUserDataValue = setUserDataValue;
|
|
13
|
+
exports.signOut = signOut;
|
|
14
|
+
|
|
15
|
+
var _reactNative = require("react-native");
|
|
16
|
+
|
|
17
|
+
const LINKING_ERROR = `The package '@rownd/react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
18
|
+
ios: "- You have run 'pod install'\n",
|
|
19
|
+
default: ''
|
|
20
|
+
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo managed workflow\n';
|
|
21
|
+
exports.LINKING_ERROR = LINKING_ERROR;
|
|
22
|
+
const Rownd = _reactNative.NativeModules.RowndPlugin ? _reactNative.NativeModules.RowndPlugin : new Proxy({}, {
|
|
23
|
+
get() {
|
|
24
|
+
throw new Error(LINKING_ERROR);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
});
|
|
28
|
+
exports.Rownd = Rownd;
|
|
29
|
+
const IOSRowndEventEmitter = _reactNative.Platform.OS != 'ios' ? null : _reactNative.NativeModules.RowndPluginEventEmitter ? _reactNative.NativeModules.RowndPluginEventEmitter : new Proxy({}, {
|
|
30
|
+
get() {
|
|
31
|
+
throw new Error(LINKING_ERROR);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
});
|
|
35
|
+
exports.IOSRowndEventEmitter = IOSRowndEventEmitter;
|
|
36
|
+
|
|
37
|
+
const isNotAvailableInAndroidYet = () => {
|
|
38
|
+
console.log('ROWND: NOT AVAILABLE IN ANDROID YET');
|
|
39
|
+
return true;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
function configure(appKey) {
|
|
43
|
+
return Rownd.configure(appKey);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function requestSignIn() {
|
|
47
|
+
return Rownd.requestSignIn();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function signOut() {
|
|
51
|
+
return Rownd.signOut();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function manageAccount() {
|
|
55
|
+
return Rownd.manageAccount();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function getAccessToken() {
|
|
59
|
+
if (isNotAvailableInAndroidYet()) return Promise.resolve('');
|
|
60
|
+
return Rownd.getAccessToken();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function setUserDataValue(key, value) {
|
|
64
|
+
return Rownd.setUserDataValue(key, _reactNative.Platform.OS === 'android' ? {
|
|
65
|
+
value
|
|
66
|
+
} : value);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function setUserData(data) {
|
|
70
|
+
return Rownd.setUserData(data);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=nativeModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LINKING_ERROR","Platform","select","ios","default","Rownd","NativeModules","RowndPlugin","Proxy","get","Error","IOSRowndEventEmitter","OS","RowndPluginEventEmitter","isNotAvailableInAndroidYet","console","log","configure","appKey","requestSignIn","signOut","manageAccount","getAccessToken","Promise","resolve","setUserDataValue","key","value","setUserData","data"],"sources":["nativeModule.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\n\nexport const LINKING_ERROR =\n `The package '@rownd/react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nexport const Rownd = NativeModules.RowndPlugin\n ? NativeModules.RowndPlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nexport const IOSRowndEventEmitter =\n Platform.OS != 'ios'\n ? null\n : NativeModules.RowndPluginEventEmitter\n ? NativeModules.RowndPluginEventEmitter\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst isNotAvailableInAndroidYet = () => {\n console.log('ROWND: NOT AVAILABLE IN ANDROID YET');\n return true;\n};\n\nexport function configure(appKey: string): Promise<string> {\n return Rownd.configure(appKey);\n}\n\nexport function requestSignIn() {\n return Rownd.requestSignIn();\n}\n\nexport function signOut() {\n return Rownd.signOut();\n}\n\nexport function manageAccount() {\n return Rownd.manageAccount();\n}\n\nexport function getAccessToken(): Promise<string> {\n if (isNotAvailableInAndroidYet()) return Promise.resolve('');\n return Rownd.getAccessToken();\n}\n\nexport function setUserDataValue(key: string, value: any) {\n return Rownd.setUserDataValue(\n key,\n Platform.OS === 'android' ? { value } : value\n );\n}\n\nexport function setUserData(data: Record<string, any>) {\n return Rownd.setUserData(data);\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;;AAEO,MAAMA,aAAa,GACvB,8EAAD,GACAC,qBAAA,CAASC,MAAT,CAAgB;EAAEC,GAAG,EAAE,gCAAP;EAAyCC,OAAO,EAAE;AAAlD,CAAhB,CADA,GAEA,sDAFA,GAGA,6CAJK;;AAMA,MAAMC,KAAK,GAAGC,0BAAA,CAAcC,WAAd,GACjBD,0BAAA,CAAcC,WADG,GAEjB,IAAIC,KAAJ,CACE,EADF,EAEE;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAJ,CAAUV,aAAV,CAAN;EACD;;AAHH,CAFF,CAFG;;AAWA,MAAMW,oBAAoB,GAC/BV,qBAAA,CAASW,EAAT,IAAe,KAAf,GACI,IADJ,GAEIN,0BAAA,CAAcO,uBAAd,GACAP,0BAAA,CAAcO,uBADd,GAEA,IAAIL,KAAJ,CACE,EADF,EAEE;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAJ,CAAUV,aAAV,CAAN;EACD;;AAHH,CAFF,CALC;;;AAcP,MAAMc,0BAA0B,GAAG,MAAM;EACvCC,OAAO,CAACC,GAAR,CAAY,qCAAZ;EACA,OAAO,IAAP;AACD,CAHD;;AAKO,SAASC,SAAT,CAAmBC,MAAnB,EAAoD;EACzD,OAAOb,KAAK,CAACY,SAAN,CAAgBC,MAAhB,CAAP;AACD;;AAEM,SAASC,aAAT,GAAyB;EAC9B,OAAOd,KAAK,CAACc,aAAN,EAAP;AACD;;AAEM,SAASC,OAAT,GAAmB;EACxB,OAAOf,KAAK,CAACe,OAAN,EAAP;AACD;;AAEM,SAASC,aAAT,GAAyB;EAC9B,OAAOhB,KAAK,CAACgB,aAAN,EAAP;AACD;;AAEM,SAASC,cAAT,GAA2C;EAChD,IAAIR,0BAA0B,EAA9B,EAAkC,OAAOS,OAAO,CAACC,OAAR,CAAgB,EAAhB,CAAP;EAClC,OAAOnB,KAAK,CAACiB,cAAN,EAAP;AACD;;AAEM,SAASG,gBAAT,CAA0BC,GAA1B,EAAuCC,KAAvC,EAAmD;EACxD,OAAOtB,KAAK,CAACoB,gBAAN,CACLC,GADK,EAELzB,qBAAA,CAASW,EAAT,KAAgB,SAAhB,GAA4B;IAAEe;EAAF,CAA5B,GAAwCA,KAFnC,CAAP;AAID;;AAEM,SAASC,WAAT,CAAqBC,IAArB,EAAgD;EACrD,OAAOxB,KAAK,CAACuB,WAAN,CAAkBC,IAAlB,CAAP;AACD"}
|
|
@@ -1,310 +1,47 @@
|
|
|
1
|
-
import React, { createContext } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import React, { useReducer, createContext, useEffect, useContext } from 'react';
|
|
2
|
+
import { NativeEventEmitter, YellowBox, Platform } from 'react-native';
|
|
3
|
+
import { initialRowndState, rowndReducer } from '../reducer/rowndReducer';
|
|
4
|
+
import * as NativeRowndModules from '../utils/nativeModule';
|
|
5
|
+
import { Rownd, IOSRowndEventEmitter } from '../utils/nativeModule';
|
|
6
|
+
import { ActionType } from '../constants/action';
|
|
7
|
+
YellowBox.ignoreWarnings(['Sending `update_state` with no listeners registered.']);
|
|
8
|
+
YellowBox.ignoreWarnings(['YellowBox has been replaced with LogBox.']);
|
|
9
9
|
export const GlobalContext = /*#__PURE__*/createContext(undefined);
|
|
10
|
+
const eventEmitter = new NativeEventEmitter(IOSRowndEventEmitter || Rownd);
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
if (storage.contains('state')) {
|
|
13
|
-
const state = JSON.parse(storage.getString('state') || '{}');
|
|
14
|
-
return { ...initialState,
|
|
15
|
-
...state
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return initialState;
|
|
20
|
-
} // async function updateStorage(newState: any) {
|
|
21
|
-
// const oldState = JSON.parse(await storage.getItem('state') || '{}');
|
|
22
|
-
// if (!isEqual(oldState, newState)) {
|
|
23
|
-
// console.log('writing new state', newState);
|
|
24
|
-
// await storage.setItem('state', JSON.stringify(newState));
|
|
25
|
-
// }
|
|
26
|
-
// }
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const GlobalContextProvider = _ref => {
|
|
12
|
+
const RowndProvider = _ref => {
|
|
30
13
|
let {
|
|
31
14
|
children,
|
|
32
15
|
config
|
|
33
16
|
} = _ref;
|
|
34
|
-
const
|
|
35
|
-
is_initializing: false,
|
|
36
|
-
is_container_visible: false,
|
|
37
|
-
use_modal: false,
|
|
38
|
-
nav: {
|
|
39
|
-
current_route: '/',
|
|
40
|
-
route_trigger: '',
|
|
41
|
-
event_id: '',
|
|
42
|
-
section: '',
|
|
43
|
-
options: {}
|
|
44
|
-
},
|
|
45
|
-
user: {
|
|
46
|
-
data: {
|
|
47
|
-
email: null
|
|
48
|
-
},
|
|
49
|
-
needs_refresh: false,
|
|
50
|
-
redacted: []
|
|
51
|
-
},
|
|
52
|
-
auth: {
|
|
53
|
-
access_token: null,
|
|
54
|
-
refresh_token: null,
|
|
55
|
-
app_id: null
|
|
56
|
-
},
|
|
57
|
-
app: {
|
|
58
|
-
schema: null,
|
|
59
|
-
config: null
|
|
60
|
-
},
|
|
61
|
-
local_acls: null,
|
|
62
|
-
is_saving_user_data: false,
|
|
63
|
-
config
|
|
64
|
-
}; // TODO: There's a better way to do this where we have a set of rules that watch/apply to the state as it changes
|
|
65
|
-
// function dispatchExternalEvents(prevState: GlobalState, nextState: GlobalState) {
|
|
66
|
-
// // Log in, get new token, load previous auth state, etc
|
|
67
|
-
// if (prevState.auth.access_token !== nextState.auth.access_token) {
|
|
68
|
-
// events.dispatch(EventType.AUTH, {
|
|
69
|
-
// access_token: nextState.auth.access_token,
|
|
70
|
-
// user_id: nextState.user.data.id,
|
|
71
|
-
// app_id: nextState.auth.app_id,
|
|
72
|
-
// });
|
|
73
|
-
// }
|
|
74
|
-
// // User data changes. Also, fire the event when ACLs change since this affects the data
|
|
75
|
-
// // that the application can see.
|
|
76
|
-
// if (!isEqual(prevState.local_acls, nextState.local_acls) ||
|
|
77
|
-
// !isEqual(prevState.user.data, nextState.user.data)) {
|
|
78
|
-
// events.dispatch(EventType.USER_DATA, {
|
|
79
|
-
// // The data is filtered on the local_acls
|
|
80
|
-
// data: redactUserDataWithAcls(nextState.user.data, nextState.local_acls),
|
|
81
|
-
// });
|
|
82
|
-
// }
|
|
83
|
-
// // Log out
|
|
84
|
-
// if (nextState.auth.access_token === null) {
|
|
85
|
-
// events.dispatch(EventType.SIGN_OUT, {});
|
|
86
|
-
// }
|
|
87
|
-
// }
|
|
88
|
-
|
|
89
|
-
function mainReducer(state, action) {
|
|
90
|
-
var _decodedToken;
|
|
91
|
-
|
|
92
|
-
let decodedToken;
|
|
93
|
-
let newState; // let cachedAuth;
|
|
94
|
-
|
|
95
|
-
switch (action.type) {
|
|
96
|
-
case ActionType.SET_CONTAINER_VISIBLE:
|
|
97
|
-
newState = { ...state,
|
|
98
|
-
is_container_visible: action.payload.isVisible,
|
|
99
|
-
use_modal: action.payload.isVisible === false ? false : state.use_modal,
|
|
100
|
-
nav: { ...state.nav,
|
|
101
|
-
current_route: '/'
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
break;
|
|
105
|
-
|
|
106
|
-
case ActionType.CHANGE_ROUTE:
|
|
107
|
-
newState = { ...state,
|
|
108
|
-
nav: { ...state.nav,
|
|
109
|
-
current_route: action.payload.route,
|
|
110
|
-
route_trigger: action.payload.trigger || '',
|
|
111
|
-
event_id: action.payload.event_id,
|
|
112
|
-
options: action.payload.opts
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
break;
|
|
116
|
-
|
|
117
|
-
case ActionType.SET_SECTION:
|
|
118
|
-
newState = { ...state,
|
|
119
|
-
nav: { ...state.nav,
|
|
120
|
-
section: action.payload.section
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
break;
|
|
124
|
-
|
|
125
|
-
case ActionType.LOGIN_SUCCESS:
|
|
126
|
-
// storage.setItem('auth', JSON.stringify(action.payload));
|
|
127
|
-
decodedToken = jwt_decode(action.payload.access_token); // Ensure this token is for this app
|
|
128
|
-
|
|
129
|
-
if (action.payload.app_id !== state.app.id) {
|
|
130
|
-
return { ...state
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
newState = { ...state,
|
|
135
|
-
auth: { ...state.auth,
|
|
136
|
-
access_token: action.payload.access_token,
|
|
137
|
-
refresh_token: action.payload.refresh_token,
|
|
138
|
-
app_id: action.payload.app_id,
|
|
139
|
-
is_verified_user: ((_decodedToken = decodedToken) === null || _decodedToken === void 0 ? void 0 : _decodedToken['https://auth.rownd.io/is_verified_user']) !== false // default is `true` if the attribute doesn't exist
|
|
140
|
-
|
|
141
|
-
},
|
|
142
|
-
user: { ...state.user,
|
|
143
|
-
data: { ...state.user.data,
|
|
144
|
-
id: action.payload.app_user_id
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
break;
|
|
149
|
-
|
|
150
|
-
case ActionType.SIGN_OUT:
|
|
151
|
-
// storage.removeItem('auth');
|
|
152
|
-
newState = { ...state,
|
|
153
|
-
user: {
|
|
154
|
-
data: {
|
|
155
|
-
email: null
|
|
156
|
-
},
|
|
157
|
-
redacted: []
|
|
158
|
-
},
|
|
159
|
-
auth: {
|
|
160
|
-
access_token: null,
|
|
161
|
-
refresh_token: null,
|
|
162
|
-
app_id: null
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
break;
|
|
166
|
-
|
|
167
|
-
case ActionType.REFRESH_TOKEN:
|
|
168
|
-
newState = { ...state,
|
|
169
|
-
auth: { ...state.auth,
|
|
170
|
-
access_token: action.payload.access_token,
|
|
171
|
-
refresh_token: action.payload.refresh_token
|
|
172
|
-
}
|
|
173
|
-
}; // cachedAuth = storage.getItem('auth');
|
|
174
|
-
// if (cachedAuth) {
|
|
175
|
-
// const cachedAuthObj = JSON.parse(cachedAuth);
|
|
176
|
-
// cachedAuth = {
|
|
177
|
-
// ...cachedAuthObj,
|
|
178
|
-
// ...newState.auth,
|
|
179
|
-
// };
|
|
180
|
-
// storage.setItem('auth', JSON.stringify(newState.auth));
|
|
181
|
-
// }
|
|
182
|
-
|
|
183
|
-
break;
|
|
184
|
-
|
|
185
|
-
case ActionType.LOAD_USER:
|
|
186
|
-
newState = { ...state,
|
|
187
|
-
user: { ...state.user,
|
|
188
|
-
data: { ...action.payload.data
|
|
189
|
-
},
|
|
190
|
-
redacted: action.payload.redacted
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
break;
|
|
194
|
-
|
|
195
|
-
case ActionType.UPDATE_LOCAL_ACLS:
|
|
196
|
-
newState = { ...state,
|
|
197
|
-
local_acls: { ...state.local_acls,
|
|
198
|
-
...action.payload
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
break;
|
|
202
|
-
|
|
203
|
-
case ActionType.SET_USER_DATA_FIELD:
|
|
204
|
-
// Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data
|
|
205
|
-
// was not changed and no request to Rownd was ever made.
|
|
206
|
-
if (state.user.data[action.payload.field] === action.payload.value) {
|
|
207
|
-
events.dispatch(EventType.USER_DATA_SAVED, state.user.data);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
newState = { ...state,
|
|
211
|
-
user: { ...state.user,
|
|
212
|
-
data: { ...state.user.data,
|
|
213
|
-
[action.payload.field]: action.payload.value
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
break;
|
|
218
|
-
|
|
219
|
-
case ActionType.SET_USER_DATA:
|
|
220
|
-
// Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data
|
|
221
|
-
// was not changed and no request to Rownd was ever made.
|
|
222
|
-
if (isEqual(pick(state.user.data, Object.keys(action.payload.data)), action.payload.data)) {
|
|
223
|
-
events.dispatch(EventType.USER_DATA_SAVED, state.user.data);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
newState = { ...state,
|
|
227
|
-
user: { ...state.user,
|
|
228
|
-
data: { ...state.user.data,
|
|
229
|
-
...action.payload.data
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
break;
|
|
234
|
-
|
|
235
|
-
case ActionType.SET_REFRESH_USER_DATA:
|
|
236
|
-
newState = { ...state,
|
|
237
|
-
user: { ...state.user,
|
|
238
|
-
needs_refresh: action.payload.needs_refresh
|
|
239
|
-
}
|
|
240
|
-
};
|
|
241
|
-
break;
|
|
242
|
-
|
|
243
|
-
case ActionType.LOAD_STATE:
|
|
244
|
-
newState = { ...action.payload
|
|
245
|
-
};
|
|
246
|
-
break;
|
|
247
|
-
|
|
248
|
-
case ActionType.SET_IS_SAVING_USER_DATA:
|
|
249
|
-
{
|
|
250
|
-
newState = { ...state,
|
|
251
|
-
is_saving_user_data: action.payload.saving
|
|
252
|
-
};
|
|
253
|
-
break;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
case ActionType.SET_APP_CONFIG:
|
|
257
|
-
newState = { ...state,
|
|
258
|
-
app: { ...state.app,
|
|
259
|
-
...action.payload
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
break;
|
|
263
|
-
|
|
264
|
-
default:
|
|
265
|
-
newState = state;
|
|
266
|
-
} // Write state to local storage, minus a few fields
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
const persistedState = { ...newState
|
|
270
|
-
};
|
|
271
|
-
delete persistedState.config;
|
|
272
|
-
delete persistedState.nav;
|
|
273
|
-
delete persistedState.is_container_visible;
|
|
274
|
-
delete persistedState.use_modal;
|
|
275
|
-
delete persistedState.is_initializing;
|
|
276
|
-
delete persistedState.is_saving_user_data; // updateStorage(persistedState);
|
|
277
|
-
|
|
278
|
-
storage.set('state', JSON.stringify(persistedState)); // Fire any events that depend on state updates
|
|
279
|
-
// dispatchExternalEvents(state, newState);
|
|
280
|
-
|
|
281
|
-
return newState;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
const [state, dispatch] = useReducer(mainReducer, initialState, handleStateInit); // Async load cached state from storage
|
|
285
|
-
// useEffect(() => {
|
|
286
|
-
// (async () => {
|
|
287
|
-
// const existingStateStr = await storage.getItem('state');
|
|
288
|
-
// if (!existingStateStr) {
|
|
289
|
-
// return;
|
|
290
|
-
// }
|
|
291
|
-
// dispatch({
|
|
292
|
-
// type: ActionType.LOAD_STATE,
|
|
293
|
-
// payload: JSON.parse(existingStateStr),
|
|
294
|
-
// });
|
|
295
|
-
// });
|
|
296
|
-
// }, []);
|
|
297
|
-
|
|
17
|
+
const [state, dispatch] = useReducer(rowndReducer, initialRowndState);
|
|
298
18
|
const value = {
|
|
299
19
|
state,
|
|
300
20
|
dispatch
|
|
301
21
|
};
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
NativeRowndModules.configure(config.appKey);
|
|
24
|
+
}, [config.appKey]);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const onSessionConnect = event => {
|
|
27
|
+
dispatch({
|
|
28
|
+
type: ActionType.UPDATE_STATE,
|
|
29
|
+
payload: Platform.OS === 'android' ? JSON.parse(event.state) : event
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const subscription = eventEmitter.addListener('update_state', onSessionConnect);
|
|
34
|
+
if (!subscription) return;
|
|
35
|
+
return () => {
|
|
36
|
+
subscription.remove();
|
|
37
|
+
};
|
|
38
|
+
}, []);
|
|
302
39
|
return /*#__PURE__*/React.createElement(GlobalContext.Provider, {
|
|
303
40
|
value: value
|
|
304
41
|
}, children);
|
|
305
42
|
};
|
|
306
43
|
|
|
307
|
-
function
|
|
44
|
+
function useRowndContext() {
|
|
308
45
|
const context = useContext(GlobalContext);
|
|
309
46
|
|
|
310
47
|
if (context === undefined) {
|
|
@@ -314,5 +51,5 @@ function useGlobalContext() {
|
|
|
314
51
|
return context;
|
|
315
52
|
}
|
|
316
53
|
|
|
317
|
-
export {
|
|
54
|
+
export { RowndProvider, useRowndContext };
|
|
318
55
|
//# sourceMappingURL=GlobalContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useReducer","useContext","isEqual","pick","jwt_decode","storage","events","EventType","ActionType","GlobalContext","undefined","handleStateInit","initialState","contains","state","JSON","parse","getString","GlobalContextProvider","children","config","is_initializing","is_container_visible","use_modal","nav","current_route","route_trigger","event_id","section","options","user","data","email","needs_refresh","redacted","auth","access_token","refresh_token","app_id","app","schema","local_acls","is_saving_user_data","mainReducer","action","decodedToken","newState","type","SET_CONTAINER_VISIBLE","payload","isVisible","CHANGE_ROUTE","route","trigger","opts","SET_SECTION","LOGIN_SUCCESS","id","is_verified_user","app_user_id","SIGN_OUT","REFRESH_TOKEN","LOAD_USER","UPDATE_LOCAL_ACLS","SET_USER_DATA_FIELD","field","value","dispatch","USER_DATA_SAVED","SET_USER_DATA","Object","keys","SET_REFRESH_USER_DATA","LOAD_STATE","SET_IS_SAVING_USER_DATA","saving","SET_APP_CONFIG","persistedState","set","stringify","useGlobalContext","context","Error"],"sources":["GlobalContext.tsx"],"sourcesContent":["import React, { createContext, FunctionComponent } from 'react';\nimport { useReducer, useContext } from 'react';\nimport isEqual from 'lodash-es/isEqual';\nimport pick from 'lodash-es/pick';\nimport jwt_decode from 'jwt-decode';\nimport { IConfig } from '../utils/config';\nimport storage from '../utils/storage';\nimport { events, EventType } from '../utils/events';\n\nimport { TAction, ActionType } from '../data/actions';\n\ntype Dispatch = (action: TAction) => void;\n\nexport type GlobalState = {\n is_initializing: boolean;\n is_container_visible: boolean;\n use_modal: boolean;\n nav: {\n current_route: string;\n route_trigger: string;\n event_id: string;\n section: string;\n options?: any;\n };\n user: {\n data: {\n id?: string;\n email: string | null;\n [key: string]: any;\n };\n needs_refresh?: boolean;\n redacted: string[];\n };\n auth: {\n access_token: string | null;\n refresh_token: string | null;\n app_id: string | null;\n init_data?: Record<string, any>;\n is_verified_user?: boolean;\n };\n app: {\n id?: string;\n icon?: string;\n icon_content_type?: string;\n config: AppConfig | null;\n schema: AppSchema | null;\n user_verification_field?: string;\n user_verification_fields?: string[];\n };\n local_acls: Record<string, { shared: boolean }> | null;\n is_saving_user_data: boolean;\n config?: IConfig;\n};\n\ntype AppSchema = Record<string, SchemaField>;\n\nexport interface SchemaField {\n display_name: string;\n type: string;\n data_category: string;\n required: boolean;\n owned_by: string;\n user_visible: boolean;\n revoke_after: string;\n required_retention: string;\n collection_justification: string;\n opt_out_warning: string;\n}\n\ninterface AppConfig {\n customizations: {\n primary_color: string;\n };\n default_user_id_format?: string;\n hub: {\n auth: {\n allow_unverified_users?: boolean;\n additional_fields: [\n {\n name: string;\n type: string;\n label: string;\n placeholder?: string;\n options: [\n {\n value: string;\n label: string;\n }\n ];\n }\n ];\n email: {\n from_address: string;\n image: string;\n };\n show_app_icon: boolean;\n };\n customizations: HubCustomizations;\n };\n}\n\nexport interface HubCustomizations {\n rounded_corners: boolean;\n primary_color: string;\n placement: 'bottom-left' | 'hidden';\n offset_x: number;\n offset_y: number;\n property_overrides: Record<string, string>;\n}\n\ntype ContextProps = {\n config: IConfig;\n};\n\nexport const GlobalContext = createContext<\n { state: GlobalState; dispatch: Dispatch } | undefined\n>(undefined);\n\nfunction handleStateInit(initialState: GlobalState) {\n if (storage.contains('state')) {\n const state = JSON.parse(storage.getString('state') || '{}');\n\n return {\n ...initialState,\n ...state,\n };\n }\n\n return initialState;\n}\n\n// async function updateStorage(newState: any) {\n// const oldState = JSON.parse(await storage.getItem('state') || '{}');\n\n// if (!isEqual(oldState, newState)) {\n// console.log('writing new state', newState);\n// await storage.setItem('state', JSON.stringify(newState));\n// }\n// }\n\nconst GlobalContextProvider: FunctionComponent<ContextProps> = ({\n children,\n config,\n}) => {\n const initialState: GlobalState = {\n is_initializing: false,\n is_container_visible: false,\n use_modal: false,\n nav: {\n current_route: '/',\n route_trigger: '',\n event_id: '',\n section: '',\n options: {},\n },\n user: {\n data: {\n email: null,\n },\n needs_refresh: false,\n redacted: [],\n },\n auth: {\n access_token: null,\n refresh_token: null,\n app_id: null,\n },\n app: {\n schema: null,\n config: null,\n },\n local_acls: null,\n is_saving_user_data: false,\n config,\n };\n\n // TODO: There's a better way to do this where we have a set of rules that watch/apply to the state as it changes\n // function dispatchExternalEvents(prevState: GlobalState, nextState: GlobalState) {\n\n // // Log in, get new token, load previous auth state, etc\n // if (prevState.auth.access_token !== nextState.auth.access_token) {\n // events.dispatch(EventType.AUTH, {\n // access_token: nextState.auth.access_token,\n // user_id: nextState.user.data.id,\n // app_id: nextState.auth.app_id,\n // });\n // }\n\n // // User data changes. Also, fire the event when ACLs change since this affects the data\n // // that the application can see.\n // if (!isEqual(prevState.local_acls, nextState.local_acls) ||\n // !isEqual(prevState.user.data, nextState.user.data)) {\n // events.dispatch(EventType.USER_DATA, {\n // // The data is filtered on the local_acls\n // data: redactUserDataWithAcls(nextState.user.data, nextState.local_acls),\n // });\n // }\n\n // // Log out\n // if (nextState.auth.access_token === null) {\n // events.dispatch(EventType.SIGN_OUT, {});\n // }\n // }\n\n function mainReducer(state: GlobalState, action: TAction): GlobalState {\n let decodedToken: any;\n\n let newState;\n // let cachedAuth;\n switch (action.type) {\n case ActionType.SET_CONTAINER_VISIBLE:\n newState = {\n ...state,\n is_container_visible: action.payload.isVisible,\n use_modal:\n action.payload.isVisible === false ? false : state.use_modal,\n nav: {\n ...state.nav,\n current_route: '/',\n },\n };\n break;\n\n case ActionType.CHANGE_ROUTE:\n newState = {\n ...state,\n nav: {\n ...state.nav,\n current_route: action.payload.route,\n route_trigger: action.payload.trigger || '',\n event_id: action.payload.event_id,\n options: action.payload.opts,\n },\n };\n\n break;\n\n case ActionType.SET_SECTION:\n newState = {\n ...state,\n nav: {\n ...state.nav,\n section: action.payload.section,\n },\n };\n break;\n\n case ActionType.LOGIN_SUCCESS:\n // storage.setItem('auth', JSON.stringify(action.payload));\n decodedToken = jwt_decode(action.payload.access_token);\n\n // Ensure this token is for this app\n if (action.payload.app_id !== state.app.id) {\n return {\n ...state,\n };\n }\n\n newState = {\n ...state,\n auth: {\n ...state.auth,\n access_token: action.payload.access_token,\n refresh_token: action.payload.refresh_token,\n app_id: action.payload.app_id,\n is_verified_user:\n decodedToken?.['https://auth.rownd.io/is_verified_user'] !==\n false, // default is `true` if the attribute doesn't exist\n },\n user: {\n ...state.user,\n data: {\n ...state.user.data,\n id: action.payload.app_user_id,\n },\n },\n };\n break;\n\n case ActionType.SIGN_OUT:\n // storage.removeItem('auth');\n newState = {\n ...state,\n user: {\n data: {\n email: null,\n },\n redacted: [],\n },\n auth: {\n access_token: null,\n refresh_token: null,\n app_id: null,\n },\n };\n break;\n\n case ActionType.REFRESH_TOKEN:\n newState = {\n ...state,\n auth: {\n ...state.auth,\n access_token: action.payload.access_token,\n refresh_token: action.payload.refresh_token,\n },\n };\n\n // cachedAuth = storage.getItem('auth');\n // if (cachedAuth) {\n // const cachedAuthObj = JSON.parse(cachedAuth);\n // cachedAuth = {\n // ...cachedAuthObj,\n // ...newState.auth,\n // };\n // storage.setItem('auth', JSON.stringify(newState.auth));\n // }\n\n break;\n\n case ActionType.LOAD_USER:\n newState = {\n ...state,\n user: {\n ...state.user,\n data: {\n ...action.payload.data,\n },\n redacted: action.payload.redacted,\n },\n };\n break;\n\n case ActionType.UPDATE_LOCAL_ACLS:\n newState = {\n ...state,\n local_acls: {\n ...state.local_acls,\n ...action.payload,\n },\n };\n break;\n\n case ActionType.SET_USER_DATA_FIELD:\n // Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data\n // was not changed and no request to Rownd was ever made.\n if (state.user.data[action.payload.field] === action.payload.value) {\n events.dispatch(EventType.USER_DATA_SAVED, state.user.data);\n }\n\n newState = {\n ...state,\n user: {\n ...state.user,\n data: {\n ...state.user.data,\n [action.payload.field]: action.payload.value,\n },\n },\n };\n break;\n\n case ActionType.SET_USER_DATA:\n // Dispatch a USER_DATA_SAVED event to satisfy event listeners when the data\n // was not changed and no request to Rownd was ever made.\n if (\n isEqual(\n pick(state.user.data, Object.keys(action.payload.data)),\n action.payload.data\n )\n ) {\n events.dispatch(EventType.USER_DATA_SAVED, state.user.data);\n }\n\n newState = {\n ...state,\n user: {\n ...state.user,\n data: {\n ...state.user.data,\n ...action.payload.data,\n },\n },\n };\n break;\n\n case ActionType.SET_REFRESH_USER_DATA:\n newState = {\n ...state,\n user: {\n ...state.user,\n needs_refresh: action.payload.needs_refresh,\n },\n };\n break;\n\n case ActionType.LOAD_STATE:\n newState = {\n ...action.payload,\n };\n break;\n\n case ActionType.SET_IS_SAVING_USER_DATA: {\n newState = {\n ...state,\n is_saving_user_data: action.payload.saving,\n };\n break;\n }\n\n case ActionType.SET_APP_CONFIG:\n newState = {\n ...state,\n app: {\n ...state.app,\n ...action.payload,\n },\n };\n break;\n\n default:\n newState = state;\n }\n\n // Write state to local storage, minus a few fields\n const persistedState: any = { ...newState };\n delete persistedState.config;\n delete persistedState.nav;\n delete persistedState.is_container_visible;\n delete persistedState.use_modal;\n delete persistedState.is_initializing;\n delete persistedState.is_saving_user_data;\n\n // updateStorage(persistedState);\n storage.set('state', JSON.stringify(persistedState));\n\n // Fire any events that depend on state updates\n // dispatchExternalEvents(state, newState);\n\n return newState;\n }\n\n const [state, dispatch] = useReducer(\n mainReducer,\n initialState,\n handleStateInit\n );\n\n // Async load cached state from storage\n // useEffect(() => {\n // (async () => {\n // const existingStateStr = await storage.getItem('state');\n\n // if (!existingStateStr) {\n // return;\n // }\n\n // dispatch({\n // type: ActionType.LOAD_STATE,\n // payload: JSON.parse(existingStateStr),\n // });\n // });\n // }, []);\n\n const value = { state, dispatch };\n return (\n <GlobalContext.Provider value={value}>\n {children}\n {/* <ExternalApi config={config} dispatchEvents={(state: GlobalState) => dispatchExternalEvents(initialState, state)} /> */}\n </GlobalContext.Provider>\n );\n};\n\nfunction useGlobalContext() {\n const context = useContext(GlobalContext);\n\n if (context === undefined) {\n throw new Error(\n 'useGlobalContext must be used within a GlobalContext Provider'\n );\n }\n\n return context;\n}\n\nexport { GlobalContextProvider, useGlobalContext };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useReducer","createContext","useEffect","useContext","NativeEventEmitter","YellowBox","Platform","initialRowndState","rowndReducer","NativeRowndModules","Rownd","IOSRowndEventEmitter","ActionType","ignoreWarnings","GlobalContext","undefined","eventEmitter","RowndProvider","children","config","state","dispatch","value","configure","appKey","onSessionConnect","event","type","UPDATE_STATE","payload","OS","JSON","parse","subscription","addListener","remove","useRowndContext","context","Error"],"sources":["GlobalContext.tsx"],"sourcesContent":["import React, {\n useReducer,\n createContext,\n FunctionComponent,\n useEffect,\n useContext,\n} from 'react';\nimport { NativeEventEmitter, YellowBox, Platform } from 'react-native';\nimport { initialRowndState, rowndReducer } from '../reducer/rowndReducer';\n\nimport * as NativeRowndModules from '../utils/nativeModule';\nimport { Rownd, IOSRowndEventEmitter } from '../utils/nativeModule';\nimport type { ContextProps, GlobalState } from './GlobalContext.types';\nimport type { TAction } from '../constants/action';\nimport { ActionType } from '../constants/action';\n\nYellowBox.ignoreWarnings([\n 'Sending `update_state` with no listeners registered.',\n]);\nYellowBox.ignoreWarnings(['YellowBox has been replaced with LogBox.']);\n\nexport const GlobalContext = createContext<\n { state: GlobalState; dispatch: React.Dispatch<TAction> } | undefined\n>(undefined);\n\nconst eventEmitter = new NativeEventEmitter(IOSRowndEventEmitter || Rownd);\n\nconst RowndProvider: FunctionComponent<ContextProps> = ({\n children,\n config,\n}) => {\n const [state, dispatch] = useReducer(rowndReducer, initialRowndState);\n const value = { state, dispatch };\n\n useEffect(() => {\n NativeRowndModules.configure(config.appKey);\n }, [config.appKey]);\n\n useEffect(() => {\n const onSessionConnect = (event: any) => {\n dispatch({\n type: ActionType.UPDATE_STATE,\n payload: Platform.OS === 'android' ? JSON.parse(event.state) : event,\n });\n };\n const subscription = eventEmitter.addListener(\n 'update_state',\n onSessionConnect\n );\n\n if (!subscription) return;\n\n return () => {\n subscription.remove();\n };\n }, []);\n\n return (\n <GlobalContext.Provider value={value}>{children}</GlobalContext.Provider>\n );\n};\n\nfunction useRowndContext() {\n const context = useContext(GlobalContext);\n\n if (context === undefined) {\n throw new Error(\n 'useGlobalContext must be used within a GlobalContext Provider'\n );\n }\n\n return context;\n}\n\nexport { RowndProvider, useRowndContext };\n"],"mappings":"AAAA,OAAOA,KAAP,IACEC,UADF,EAEEC,aAFF,EAIEC,SAJF,EAKEC,UALF,QAMO,OANP;AAOA,SAASC,kBAAT,EAA6BC,SAA7B,EAAwCC,QAAxC,QAAwD,cAAxD;AACA,SAASC,iBAAT,EAA4BC,YAA5B,QAAgD,yBAAhD;AAEA,OAAO,KAAKC,kBAAZ,MAAoC,uBAApC;AACA,SAASC,KAAT,EAAgBC,oBAAhB,QAA4C,uBAA5C;AAGA,SAASC,UAAT,QAA2B,qBAA3B;AAEAP,SAAS,CAACQ,cAAV,CAAyB,CACvB,sDADuB,CAAzB;AAGAR,SAAS,CAACQ,cAAV,CAAyB,CAAC,0CAAD,CAAzB;AAEA,OAAO,MAAMC,aAAa,gBAAGb,aAAa,CAExCc,SAFwC,CAAnC;AAIP,MAAMC,YAAY,GAAG,IAAIZ,kBAAJ,CAAuBO,oBAAoB,IAAID,KAA/C,CAArB;;AAEA,MAAMO,aAA8C,GAAG,QAGjD;EAAA,IAHkD;IACtDC,QADsD;IAEtDC;EAFsD,CAGlD;EACJ,MAAM,CAACC,KAAD,EAAQC,QAAR,IAAoBrB,UAAU,CAACQ,YAAD,EAAeD,iBAAf,CAApC;EACA,MAAMe,KAAK,GAAG;IAAEF,KAAF;IAASC;EAAT,CAAd;EAEAnB,SAAS,CAAC,MAAM;IACdO,kBAAkB,CAACc,SAAnB,CAA6BJ,MAAM,CAACK,MAApC;EACD,CAFQ,EAEN,CAACL,MAAM,CAACK,MAAR,CAFM,CAAT;EAIAtB,SAAS,CAAC,MAAM;IACd,MAAMuB,gBAAgB,GAAIC,KAAD,IAAgB;MACvCL,QAAQ,CAAC;QACPM,IAAI,EAAEf,UAAU,CAACgB,YADV;QAEPC,OAAO,EAAEvB,QAAQ,CAACwB,EAAT,KAAgB,SAAhB,GAA4BC,IAAI,CAACC,KAAL,CAAWN,KAAK,CAACN,KAAjB,CAA5B,GAAsDM;MAFxD,CAAD,CAAR;IAID,CALD;;IAMA,MAAMO,YAAY,GAAGjB,YAAY,CAACkB,WAAb,CACnB,cADmB,EAEnBT,gBAFmB,CAArB;IAKA,IAAI,CAACQ,YAAL,EAAmB;IAEnB,OAAO,MAAM;MACXA,YAAY,CAACE,MAAb;IACD,CAFD;EAGD,CAjBQ,EAiBN,EAjBM,CAAT;EAmBA,oBACE,oBAAC,aAAD,CAAe,QAAf;IAAwB,KAAK,EAAEb;EAA/B,GAAuCJ,QAAvC,CADF;AAGD,CAjCD;;AAmCA,SAASkB,eAAT,GAA2B;EACzB,MAAMC,OAAO,GAAGlC,UAAU,CAACW,aAAD,CAA1B;;EAEA,IAAIuB,OAAO,KAAKtB,SAAhB,EAA2B;IACzB,MAAM,IAAIuB,KAAJ,CACJ,+DADI,CAAN;EAGD;;EAED,OAAOD,OAAP;AACD;;AAED,SAASpB,aAAT,EAAwBmB,eAAxB"}
|