@onairos/react-native 3.0.5 → 3.0.6
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/README.md +17 -0
- package/lib/commonjs/components/OnairosButton.js +3 -2
- package/lib/commonjs/components/OnairosButton.js.map +1 -1
- package/lib/commonjs/index.js +75 -14
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/Portal.js +98 -0
- package/lib/commonjs/utils/Portal.js.map +1 -0
- package/lib/module/components/OnairosButton.js +3 -2
- package/lib/module/components/OnairosButton.js.map +1 -1
- package/lib/module/index.js +6 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/Portal.js +90 -0
- package/lib/module/utils/Portal.js.map +1 -0
- package/lib/typescript/components/OnairosButton.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/Portal.d.ts +14 -0
- package/lib/typescript/utils/Portal.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/OnairosButton.tsx +11 -7
- package/src/index.ts +5 -0
- package/src/utils/Portal.tsx +83 -0
package/README.md
CHANGED
|
@@ -107,6 +107,23 @@ cd ios && pod install
|
|
|
107
107
|
|
|
108
108
|
## Usage
|
|
109
109
|
|
|
110
|
+
### Important: Setup Portal Host
|
|
111
|
+
|
|
112
|
+
For modals and overlays to appear properly, you must wrap your app with the `PortalHost` component:
|
|
113
|
+
|
|
114
|
+
```javascript
|
|
115
|
+
import { PortalHost } from 'onairos-react-native';
|
|
116
|
+
|
|
117
|
+
export default function App() {
|
|
118
|
+
return (
|
|
119
|
+
<PortalHost>
|
|
120
|
+
{/* Your app content goes here */}
|
|
121
|
+
<MainNavigator />
|
|
122
|
+
</PortalHost>
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
110
127
|
### Basic Button Integration
|
|
111
128
|
|
|
112
129
|
1. Import the OnairosButton component:
|
|
@@ -10,6 +10,7 @@ var _UniversalOnboarding = require("./UniversalOnboarding");
|
|
|
10
10
|
var _Overlay = require("./Overlay");
|
|
11
11
|
var _secureStorage = require("../utils/secureStorage");
|
|
12
12
|
var _api = require("../api");
|
|
13
|
+
var _Portal = require("../utils/Portal");
|
|
13
14
|
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); }
|
|
14
15
|
/**
|
|
15
16
|
* OnairosButton Component - A sign-in button similar to Google/Apple sign-in
|
|
@@ -142,13 +143,13 @@ const OnairosButton = ({
|
|
|
142
143
|
onComplete: handleOnboardingComplete,
|
|
143
144
|
debug: debug,
|
|
144
145
|
test: testMode
|
|
145
|
-
}), showOverlay && storedCredentials && /*#__PURE__*/_react.default.createElement(_Overlay.Overlay, {
|
|
146
|
+
}), showOverlay && storedCredentials && /*#__PURE__*/_react.default.createElement(_Portal.Portal, null, /*#__PURE__*/_react.default.createElement(_Overlay.Overlay, {
|
|
146
147
|
data: requestData || {},
|
|
147
148
|
username: storedCredentials.username,
|
|
148
149
|
modelKey: storedCredentials.userPin || '',
|
|
149
150
|
onResolved: handleOverlayResolved,
|
|
150
151
|
appName: AppName
|
|
151
|
-
}));
|
|
152
|
+
})));
|
|
152
153
|
};
|
|
153
154
|
exports.OnairosButton = OnairosButton;
|
|
154
155
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UniversalOnboarding","_Overlay","_secureStorage","_api","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","useState","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","hasCredentials","credentials","getCredentials","username","clearCredentials","isValid","onairosApi","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","useCallback","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","TouchableOpacity","style","onPress","disabled","accessibilityLabel","ActivityIndicator","size","Text","UniversalOnboarding","visible","onClose","onComplete","test","Overlay","modelKey","userPin","appName","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAWA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAGA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UniversalOnboarding","_Overlay","_secureStorage","_api","_Portal","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","useState","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","hasCredentials","credentials","getCredentials","username","clearCredentials","isValid","onairosApi","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","useCallback","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","TouchableOpacity","style","onPress","disabled","accessibilityLabel","ActivityIndicator","size","Text","UniversalOnboarding","visible","onClose","onComplete","test","Portal","Overlay","modelKey","userPin","appName","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,19 +3,64 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
Onairos: true,
|
|
8
|
+
OnairosButton: true,
|
|
9
|
+
OnairosOverlay: true,
|
|
10
|
+
UniversalOnboarding: true,
|
|
11
|
+
Portal: true,
|
|
12
|
+
PortalHost: true,
|
|
13
|
+
ConnectorScreen: true,
|
|
14
|
+
PinCreationScreen: true,
|
|
15
|
+
LoadingScreen: true,
|
|
16
|
+
OAuthWebView: true,
|
|
17
|
+
PlatformConnector: true,
|
|
18
|
+
OnboardingHeader: true,
|
|
19
|
+
PinInput: true,
|
|
20
|
+
useCredentials: true,
|
|
21
|
+
useConnections: true,
|
|
22
|
+
storeCredentials: true,
|
|
23
|
+
getCredentials: true,
|
|
24
|
+
hasCredentials: true,
|
|
25
|
+
deleteCredentials: true,
|
|
26
|
+
updateCredentials: true,
|
|
27
|
+
generateDeviceUsername: true,
|
|
28
|
+
verifyCredentials: true,
|
|
29
|
+
validateCredentials: true,
|
|
30
|
+
createAccount: true,
|
|
31
|
+
authenticate: true,
|
|
32
|
+
refreshToken: true,
|
|
33
|
+
getPlatformData: true,
|
|
34
|
+
getUserProfile: true,
|
|
35
|
+
updatePlatformConnections: true,
|
|
36
|
+
rsaEncrypt: true,
|
|
37
|
+
sha256: true,
|
|
38
|
+
base64ToBuffer: true,
|
|
39
|
+
logDebug: true,
|
|
40
|
+
logError: true,
|
|
41
|
+
isDebugMode: true,
|
|
42
|
+
connectPlatform: true,
|
|
43
|
+
disconnectPlatform: true,
|
|
44
|
+
initializeOAuthService: true,
|
|
45
|
+
cleanupOAuthService: true,
|
|
46
|
+
storePlatformConnection: true,
|
|
47
|
+
OAuthService: true,
|
|
48
|
+
COLORS: true,
|
|
49
|
+
PLATFORMS: true,
|
|
50
|
+
API_ENDPOINTS: true,
|
|
51
|
+
STORAGE_KEYS: true,
|
|
52
|
+
PIN_REQUIREMENTS: true,
|
|
53
|
+
DEEP_LINK_CONFIG: true,
|
|
54
|
+
onairosApi: true
|
|
55
|
+
};
|
|
56
|
+
Object.defineProperty(exports, "API_ENDPOINTS", {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
get: function () {
|
|
59
|
+
return _constants.API_ENDPOINTS;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(exports, "COLORS", {
|
|
63
|
+
enumerable: true,
|
|
19
64
|
get: function () {
|
|
20
65
|
return _constants.COLORS;
|
|
21
66
|
}
|
|
@@ -104,6 +149,18 @@ Object.defineProperty(exports, "PlatformConnector", {
|
|
|
104
149
|
return _PlatformConnector.PlatformConnector;
|
|
105
150
|
}
|
|
106
151
|
});
|
|
152
|
+
Object.defineProperty(exports, "Portal", {
|
|
153
|
+
enumerable: true,
|
|
154
|
+
get: function () {
|
|
155
|
+
return _Portal.Portal;
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
Object.defineProperty(exports, "PortalHost", {
|
|
159
|
+
enumerable: true,
|
|
160
|
+
get: function () {
|
|
161
|
+
return _Portal.PortalHost;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
107
164
|
Object.defineProperty(exports, "STORAGE_KEYS", {
|
|
108
165
|
enumerable: true,
|
|
109
166
|
get: function () {
|
|
@@ -289,6 +346,7 @@ var _Onairos = require("./components/Onairos");
|
|
|
289
346
|
var _OnairosButton = require("./components/OnairosButton");
|
|
290
347
|
var _Overlay = require("./components/Overlay");
|
|
291
348
|
var _UniversalOnboarding = require("./components/UniversalOnboarding");
|
|
349
|
+
var _Portal = require("./utils/Portal");
|
|
292
350
|
var _ConnectorScreen = require("./components/screens/ConnectorScreen");
|
|
293
351
|
var _PinCreationScreen = require("./components/screens/PinCreationScreen");
|
|
294
352
|
var _LoadingScreen = require("./components/screens/LoadingScreen");
|
|
@@ -337,6 +395,8 @@ Object.keys(_encryption).forEach(function (key) {
|
|
|
337
395
|
|
|
338
396
|
// Export main components
|
|
339
397
|
|
|
398
|
+
// Export Portal components
|
|
399
|
+
|
|
340
400
|
// Screen Components
|
|
341
401
|
|
|
342
402
|
// Onboarding Components
|
|
@@ -360,7 +420,8 @@ const components = {
|
|
|
360
420
|
Onairos: _Onairos.Onairos,
|
|
361
421
|
OnairosButton: _OnairosButton.OnairosButton,
|
|
362
422
|
OnairosOverlay: _Overlay.Overlay,
|
|
363
|
-
UniversalOnboarding: _UniversalOnboarding.UniversalOnboarding
|
|
423
|
+
UniversalOnboarding: _UniversalOnboarding.UniversalOnboarding,
|
|
424
|
+
PortalHost: _Portal.PortalHost
|
|
364
425
|
};
|
|
365
426
|
|
|
366
427
|
// Export the components as the default export
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OnairosButton","
|
|
1
|
+
{"version":3,"names":["_Onairos","require","_OnairosButton","_Overlay","_UniversalOnboarding","_Portal","_ConnectorScreen","_PinCreationScreen","_LoadingScreen","_OAuthWebView","_PlatformConnector","_OnboardingHeader","_PinInput","_useCredentials","_useConnections","_secureStorage","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_onairosApi","_crypto","_debugHelper","_oauthService","_constants","_api","_encryption","components","Onairos","OnairosButton","OnairosOverlay","Overlay","UniversalOnboarding","PortalHost","_default","default"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AASA,IAAAI,OAAA,GAAAJ,OAAA;AAGA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AAGA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,iBAAA,GAAAV,OAAA;AACA,IAAAW,SAAA,GAAAX,OAAA;AAGA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,eAAA,GAAAb,OAAA;AAGA,IAAAc,cAAA,GAAAd,OAAA;AAqEAe,MAAA,CAAAC,IAAA,CAAAF,cAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,cAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,cAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AA3DA,IAAAS,WAAA,GAAA3B,OAAA;AAUA,IAAA4B,OAAA,GAAA5B,OAAA;AAMA,IAAA6B,YAAA,GAAA7B,OAAA;AAOA,IAAA8B,aAAA,GAAA9B,OAAA;AA+BA,IAAA+B,UAAA,GAAA/B,OAAA;AAGA,IAAAgC,IAAA,GAAAhC,OAAA;AAGA,IAAAiC,WAAA,GAAAjC,OAAA;AAAAe,MAAA,CAAAC,IAAA,CAAAiB,WAAA,EAAAhB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAe,WAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,WAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AA1GA;AACA;AACA;AACA;;AAEA;;AAMA;;AAMA;;AAGA;;AAKA;;AAMA;;AAIA;;AAiCA;;AASA;;AAsBA;;AAGA;;AAMA;;AAQA;AACA,MAAMgB,UAAU,GAAG;EACjBC,OAAO,EAAEA,gBAA2B;EACpCC,aAAa,EAAEA,4BAAwD;EACvEC,cAAc,EAAEC,gBAA2B;EAC3CC,mBAAmB,EAAEA,wCAAoE;EACzFC,UAAU,EAAEA;AACd,CAAC;;AAED;AAAA,IAAAC,QAAA,GAAAlB,OAAA,CAAAmB,OAAA,GACeR,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PortalHost = exports.Portal = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
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); }
|
|
10
|
+
// Store for portal instances
|
|
11
|
+
const portalRefs = {};
|
|
12
|
+
let portalId = 0;
|
|
13
|
+
|
|
14
|
+
// Context to pass portal host state
|
|
15
|
+
const PortalContext = /*#__PURE__*/_react.default.createContext({
|
|
16
|
+
mount: () => 0,
|
|
17
|
+
update: () => {},
|
|
18
|
+
unmount: () => {}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Portal Host component - place this at the root of your app
|
|
23
|
+
*/
|
|
24
|
+
const PortalHost = ({
|
|
25
|
+
children
|
|
26
|
+
}) => {
|
|
27
|
+
const [portals, setPortals] = (0, _react.useState)({});
|
|
28
|
+
const mount = children => {
|
|
29
|
+
const key = ++portalId;
|
|
30
|
+
setPortals(state => ({
|
|
31
|
+
...state,
|
|
32
|
+
[key]: children
|
|
33
|
+
}));
|
|
34
|
+
return key;
|
|
35
|
+
};
|
|
36
|
+
const update = (key, children) => {
|
|
37
|
+
setPortals(state => ({
|
|
38
|
+
...state,
|
|
39
|
+
[key]: children
|
|
40
|
+
}));
|
|
41
|
+
};
|
|
42
|
+
const unmount = key => {
|
|
43
|
+
setPortals(state => {
|
|
44
|
+
const newState = {
|
|
45
|
+
...state
|
|
46
|
+
};
|
|
47
|
+
delete newState[key];
|
|
48
|
+
return newState;
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
return /*#__PURE__*/_react.default.createElement(PortalContext.Provider, {
|
|
52
|
+
value: {
|
|
53
|
+
mount,
|
|
54
|
+
update,
|
|
55
|
+
unmount
|
|
56
|
+
}
|
|
57
|
+
}, children, Object.keys(portals).map(key => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
58
|
+
key: key,
|
|
59
|
+
style: {
|
|
60
|
+
position: 'absolute',
|
|
61
|
+
top: 0,
|
|
62
|
+
left: 0,
|
|
63
|
+
right: 0,
|
|
64
|
+
bottom: 0,
|
|
65
|
+
zIndex: 9999
|
|
66
|
+
}
|
|
67
|
+
}, portals[Number(key)])));
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Portal component - renders children into the PortalHost
|
|
72
|
+
*/
|
|
73
|
+
exports.PortalHost = PortalHost;
|
|
74
|
+
const Portal = ({
|
|
75
|
+
children
|
|
76
|
+
}) => {
|
|
77
|
+
const {
|
|
78
|
+
mount,
|
|
79
|
+
update,
|
|
80
|
+
unmount
|
|
81
|
+
} = _react.default.useContext(PortalContext);
|
|
82
|
+
const [portalId, setPortalId] = (0, _react.useState)(null);
|
|
83
|
+
(0, _react.useEffect)(() => {
|
|
84
|
+
const id = mount(children);
|
|
85
|
+
setPortalId(id);
|
|
86
|
+
return () => {
|
|
87
|
+
if (portalId) unmount(portalId);
|
|
88
|
+
};
|
|
89
|
+
}, []);
|
|
90
|
+
(0, _react.useEffect)(() => {
|
|
91
|
+
if (portalId !== null) {
|
|
92
|
+
update(portalId, children);
|
|
93
|
+
}
|
|
94
|
+
}, [children, portalId]);
|
|
95
|
+
return null;
|
|
96
|
+
};
|
|
97
|
+
exports.Portal = Portal;
|
|
98
|
+
//# sourceMappingURL=Portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","portalRefs","portalId","PortalContext","React","createContext","mount","update","unmount","PortalHost","children","portals","setPortals","useState","key","state","newState","createElement","Provider","value","keys","map","View","style","position","top","left","right","bottom","zIndex","Number","exports","Portal","useContext","setPortalId","useEffect","id"],"sourceRoot":"..\\..\\..\\src","sources":["utils/Portal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ import { UniversalOnboarding } from './UniversalOnboarding';
|
|
|
4
4
|
import { Overlay } from './Overlay';
|
|
5
5
|
import { hasCredentials, getCredentials, deleteCredentials as clearCredentials } from '../utils/secureStorage';
|
|
6
6
|
import { onairosApi } from '../api';
|
|
7
|
+
import { Portal } from '../utils/Portal';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* OnairosButton Component - A sign-in button similar to Google/Apple sign-in
|
|
@@ -136,13 +137,13 @@ export const OnairosButton = ({
|
|
|
136
137
|
onComplete: handleOnboardingComplete,
|
|
137
138
|
debug: debug,
|
|
138
139
|
test: testMode
|
|
139
|
-
}), showOverlay && storedCredentials && /*#__PURE__*/React.createElement(Overlay, {
|
|
140
|
+
}), showOverlay && storedCredentials && /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(Overlay, {
|
|
140
141
|
data: requestData || {},
|
|
141
142
|
username: storedCredentials.username,
|
|
142
143
|
modelKey: storedCredentials.userPin || '',
|
|
143
144
|
onResolved: handleOverlayResolved,
|
|
144
145
|
appName: AppName
|
|
145
|
-
}));
|
|
146
|
+
})));
|
|
146
147
|
};
|
|
147
148
|
const styles = StyleSheet.create({
|
|
148
149
|
button: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useCallback","TouchableOpacity","Text","StyleSheet","ActivityIndicator","UniversalOnboarding","Overlay","hasCredentials","getCredentials","deleteCredentials","clearCredentials","onairosApi","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","credentials","username","isValid","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","style","onPress","disabled","accessibilityLabel","size","visible","onClose","onComplete","test","modelKey","userPin","appName","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AACpD,SACEC,gBAAgB,EAChBC,IAAI,EACJC,UAAU,EAKVC,iBAAiB,QAEZ,cAAc;AACrB,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,OAAO,QAAQ,WAAW;AAGnC,SAASC,cAAc,EAAEC,cAAc,EAAEC,iBAAiB,IAAIC,gBAAgB,QAAQ,wBAAwB;AAC9G,SAASC,UAAU,QAAQ,QAAQ;;
|
|
1
|
+
{"version":3,"names":["React","useState","useCallback","TouchableOpacity","Text","StyleSheet","ActivityIndicator","UniversalOnboarding","Overlay","hasCredentials","getCredentials","deleteCredentials","clearCredentials","onairosApi","Portal","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","credentials","username","isValid","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","Fragment","style","onPress","disabled","accessibilityLabel","size","visible","onClose","onComplete","test","modelKey","userPin","appName","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -15,6 +15,9 @@ export { OnairosButton } from './components/OnairosButton';
|
|
|
15
15
|
export { Overlay as OnairosOverlay } from './components/Overlay';
|
|
16
16
|
export { UniversalOnboarding } from './components/UniversalOnboarding';
|
|
17
17
|
|
|
18
|
+
// Export Portal components
|
|
19
|
+
export { Portal, PortalHost } from './utils/Portal';
|
|
20
|
+
|
|
18
21
|
// Screen Components
|
|
19
22
|
export { ConnectorScreen } from './components/screens/ConnectorScreen';
|
|
20
23
|
export { PinCreationScreen } from './components/screens/PinCreationScreen';
|
|
@@ -52,12 +55,14 @@ export * from './utils/encryption';
|
|
|
52
55
|
|
|
53
56
|
// Define component types for default export using React.ComponentType
|
|
54
57
|
|
|
58
|
+
import { PortalHost } from './utils/Portal';
|
|
55
59
|
// Define the public components for default export
|
|
56
60
|
const components = {
|
|
57
61
|
Onairos: Onairos,
|
|
58
62
|
OnairosButton: OnairosButton,
|
|
59
63
|
OnairosOverlay: Overlay,
|
|
60
|
-
UniversalOnboarding: UniversalOnboarding
|
|
64
|
+
UniversalOnboarding: UniversalOnboarding,
|
|
65
|
+
PortalHost: PortalHost
|
|
61
66
|
};
|
|
62
67
|
|
|
63
68
|
// Export the components as the default export
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Onairos","OnairosButton","Overlay","UniversalOnboarding","OnairosOverlay","ConnectorScreen","PinCreationScreen","LoadingScreen","OAuthWebView","PlatformConnector","OnboardingHeader","PinInput","useCredentials","useConnections","storeCredentials","getCredentials","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","verifyCredentials","validateCredentials","createAccount","authenticate","refreshToken","getPlatformData","getUserProfile","updatePlatformConnections","rsaEncrypt","sha256","base64ToBuffer","logDebug","logError","isDebugMode","connectPlatform","disconnectPlatform","initializeOAuthService","cleanupOAuthService","storePlatformConnection","COLORS","PLATFORMS","API_ENDPOINTS","STORAGE_KEYS","PIN_REQUIREMENTS","DEEP_LINK_CONFIG","onairosApi","OAuthService","components"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASH,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,IAAIE,cAAc,QAAQ,sBAAsB;AAChE,SAASD,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASE,eAAe,QAAQ,sCAAsC;AACtE,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,aAAa,QAAQ,oCAAoC;;AAElE;AACA,SAASC,YAAY,QAAQ,sCAAsC;AACnE,SAASC,iBAAiB,QAAQ,2CAA2C;AAC7E,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,QAAQ,QAAQ,kCAAkC;;AAE3D;AACA,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,QACZ,uBAAuB;AAE9B,SACEC,mBAAmB,EACnBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,yBAAyB,QACpB,oBAAoB;AAE3B,SACEC,UAAU,EACVC,MAAM,EACNC,cAAc,QACT,gBAAgB;AAEvB,SACEC,QAAQ,EACRC,QAAQ,EACRC,WAAW,QACN,qBAAqB;;AAE5B;AACA,SACEC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBC,mBAAmB,EACnBC,uBAAuB,QAClB,yBAAyB;;AAEhC;;AAsBA;AACA,SAASC,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,gBAAgB,QAAQ,aAAa;;AAEhH;AACA,SAASC,UAAU,QAAQ,OAAO;AAClC,SAASC,YAAY,QAAQ,yBAAyB;AACtD,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;;AAElC;;
|
|
1
|
+
{"version":3,"names":["Onairos","OnairosButton","Overlay","UniversalOnboarding","OnairosOverlay","Portal","PortalHost","ConnectorScreen","PinCreationScreen","LoadingScreen","OAuthWebView","PlatformConnector","OnboardingHeader","PinInput","useCredentials","useConnections","storeCredentials","getCredentials","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","verifyCredentials","validateCredentials","createAccount","authenticate","refreshToken","getPlatformData","getUserProfile","updatePlatformConnections","rsaEncrypt","sha256","base64ToBuffer","logDebug","logError","isDebugMode","connectPlatform","disconnectPlatform","initializeOAuthService","cleanupOAuthService","storePlatformConnection","COLORS","PLATFORMS","API_ENDPOINTS","STORAGE_KEYS","PIN_REQUIREMENTS","DEEP_LINK_CONFIG","onairosApi","OAuthService","components"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASH,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,IAAIE,cAAc,QAAQ,sBAAsB;AAChE,SAASD,mBAAmB,QAAQ,kCAAkC;;AAEtE;AACA,SAASE,MAAM,EAAEC,UAAU,QAAQ,gBAAgB;;AAEnD;AACA,SAASC,eAAe,QAAQ,sCAAsC;AACtE,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,aAAa,QAAQ,oCAAoC;;AAElE;AACA,SAASC,YAAY,QAAQ,sCAAsC;AACnE,SAASC,iBAAiB,QAAQ,2CAA2C;AAC7E,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,QAAQ,QAAQ,kCAAkC;;AAE3D;AACA,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,QACZ,uBAAuB;AAE9B,SACEC,mBAAmB,EACnBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,yBAAyB,QACpB,oBAAoB;AAE3B,SACEC,UAAU,EACVC,MAAM,EACNC,cAAc,QACT,gBAAgB;AAEvB,SACEC,QAAQ,EACRC,QAAQ,EACRC,WAAW,QACN,qBAAqB;;AAE5B;AACA,SACEC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBC,mBAAmB,EACnBC,uBAAuB,QAClB,yBAAyB;;AAEhC;;AAsBA;AACA,SAASC,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,gBAAgB,QAAQ,aAAa;;AAEhH;AACA,SAASC,UAAU,QAAQ,OAAO;AAClC,SAASC,YAAY,QAAQ,yBAAyB;AACtD,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;;AAElC;;AAGA,SAAS1C,UAAU,QAAQ,gBAAgB;AAK3C;AACA,MAAM2C,UAAU,GAAG;EACjBjD,OAAO,EAAEA,OAA2B;EACpCC,aAAa,EAAEA,aAAwD;EACvEG,cAAc,EAAEF,OAA2B;EAC3CC,mBAAmB,EAAEA,mBAAoE;EACzFG,UAAU,EAAEA;AACd,CAAC;;AAED;AACA,eAAe2C,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
// Store for portal instances
|
|
5
|
+
const portalRefs = {};
|
|
6
|
+
let portalId = 0;
|
|
7
|
+
|
|
8
|
+
// Context to pass portal host state
|
|
9
|
+
const PortalContext = /*#__PURE__*/React.createContext({
|
|
10
|
+
mount: () => 0,
|
|
11
|
+
update: () => {},
|
|
12
|
+
unmount: () => {}
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Portal Host component - place this at the root of your app
|
|
17
|
+
*/
|
|
18
|
+
export const PortalHost = ({
|
|
19
|
+
children
|
|
20
|
+
}) => {
|
|
21
|
+
const [portals, setPortals] = useState({});
|
|
22
|
+
const mount = children => {
|
|
23
|
+
const key = ++portalId;
|
|
24
|
+
setPortals(state => ({
|
|
25
|
+
...state,
|
|
26
|
+
[key]: children
|
|
27
|
+
}));
|
|
28
|
+
return key;
|
|
29
|
+
};
|
|
30
|
+
const update = (key, children) => {
|
|
31
|
+
setPortals(state => ({
|
|
32
|
+
...state,
|
|
33
|
+
[key]: children
|
|
34
|
+
}));
|
|
35
|
+
};
|
|
36
|
+
const unmount = key => {
|
|
37
|
+
setPortals(state => {
|
|
38
|
+
const newState = {
|
|
39
|
+
...state
|
|
40
|
+
};
|
|
41
|
+
delete newState[key];
|
|
42
|
+
return newState;
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
return /*#__PURE__*/React.createElement(PortalContext.Provider, {
|
|
46
|
+
value: {
|
|
47
|
+
mount,
|
|
48
|
+
update,
|
|
49
|
+
unmount
|
|
50
|
+
}
|
|
51
|
+
}, children, Object.keys(portals).map(key => /*#__PURE__*/React.createElement(View, {
|
|
52
|
+
key: key,
|
|
53
|
+
style: {
|
|
54
|
+
position: 'absolute',
|
|
55
|
+
top: 0,
|
|
56
|
+
left: 0,
|
|
57
|
+
right: 0,
|
|
58
|
+
bottom: 0,
|
|
59
|
+
zIndex: 9999
|
|
60
|
+
}
|
|
61
|
+
}, portals[Number(key)])));
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Portal component - renders children into the PortalHost
|
|
66
|
+
*/
|
|
67
|
+
export const Portal = ({
|
|
68
|
+
children
|
|
69
|
+
}) => {
|
|
70
|
+
const {
|
|
71
|
+
mount,
|
|
72
|
+
update,
|
|
73
|
+
unmount
|
|
74
|
+
} = React.useContext(PortalContext);
|
|
75
|
+
const [portalId, setPortalId] = useState(null);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
const id = mount(children);
|
|
78
|
+
setPortalId(id);
|
|
79
|
+
return () => {
|
|
80
|
+
if (portalId) unmount(portalId);
|
|
81
|
+
};
|
|
82
|
+
}, []);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
if (portalId !== null) {
|
|
85
|
+
update(portalId, children);
|
|
86
|
+
}
|
|
87
|
+
}, [children, portalId]);
|
|
88
|
+
return null;
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=Portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","View","portalRefs","portalId","PortalContext","createContext","mount","update","unmount","PortalHost","children","portals","setPortals","key","state","newState","createElement","Provider","value","Object","keys","map","style","position","top","left","right","bottom","zIndex","Number","Portal","useContext","setPortalId","id"],"sourceRoot":"..\\..\\..\\src","sources":["utils/Portal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnairosButton.d.ts","sourceRoot":"","sources":["../../../src/components/OnairosButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAerD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"OnairosButton.d.ts","sourceRoot":"","sources":["../../../src/components/OnairosButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAerD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAKnD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAmLtD,CAAC"}
|
|
@@ -6,6 +6,7 @@ export { Onairos } from './components/Onairos';
|
|
|
6
6
|
export { OnairosButton } from './components/OnairosButton';
|
|
7
7
|
export { Overlay as OnairosOverlay } from './components/Overlay';
|
|
8
8
|
export { UniversalOnboarding } from './components/UniversalOnboarding';
|
|
9
|
+
export { Portal, PortalHost } from './utils/Portal';
|
|
9
10
|
export { ConnectorScreen } from './components/screens/ConnectorScreen';
|
|
10
11
|
export { PinCreationScreen } from './components/screens/PinCreationScreen';
|
|
11
12
|
export { LoadingScreen } from './components/screens/LoadingScreen';
|
|
@@ -40,6 +41,9 @@ declare const components: {
|
|
|
40
41
|
OnairosButton: React.ComponentType<OnairosButtonProps>;
|
|
41
42
|
OnairosOverlay: OverlayComponent;
|
|
42
43
|
UniversalOnboarding: React.ComponentType<UniversalOnboardingProps>;
|
|
44
|
+
PortalHost: React.FC<{
|
|
45
|
+
children?: React.ReactNode;
|
|
46
|
+
}>;
|
|
43
47
|
};
|
|
44
48
|
export default components;
|
|
45
49
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,UAAU,EACV,MAAM,EACN,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,UAAU,EACV,MAAM,EACN,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAG5E,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;CAAG;AACnD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;CAAG;AAGnD,QAAA,MAAM,UAAU;;;;;;;;CAMf,CAAC;AAGF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Portal Host component - place this at the root of your app
|
|
4
|
+
*/
|
|
5
|
+
export declare const PortalHost: React.FC<{
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Portal component - renders children into the PortalHost
|
|
10
|
+
*/
|
|
11
|
+
export declare const Portal: React.FC<{
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=Portal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../../../src/utils/Portal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,CAqC7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,CAmBxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -16,6 +16,7 @@ import { COLORS } from '../constants';
|
|
|
16
16
|
import type { OnairosButtonProps } from '../types';
|
|
17
17
|
import { hasCredentials, getCredentials, deleteCredentials as clearCredentials } from '../utils/secureStorage';
|
|
18
18
|
import { onairosApi } from '../api';
|
|
19
|
+
import { Portal } from '../utils/Portal';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* OnairosButton Component - A sign-in button similar to Google/Apple sign-in
|
|
@@ -185,14 +186,17 @@ export const OnairosButton: React.FC<OnairosButtonProps> = ({
|
|
|
185
186
|
/>
|
|
186
187
|
)}
|
|
187
188
|
|
|
189
|
+
{/* Overlay rendered through Portal to ensure it appears at root level */}
|
|
188
190
|
{showOverlay && storedCredentials && (
|
|
189
|
-
<
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
191
|
+
<Portal>
|
|
192
|
+
<Overlay
|
|
193
|
+
data={requestData || {}}
|
|
194
|
+
username={storedCredentials.username}
|
|
195
|
+
modelKey={storedCredentials.userPin || ''}
|
|
196
|
+
onResolved={handleOverlayResolved}
|
|
197
|
+
appName={AppName}
|
|
198
|
+
/>
|
|
199
|
+
</Portal>
|
|
196
200
|
)}
|
|
197
201
|
</>
|
|
198
202
|
);
|
package/src/index.ts
CHANGED
|
@@ -15,6 +15,9 @@ export { OnairosButton } from './components/OnairosButton';
|
|
|
15
15
|
export { Overlay as OnairosOverlay } from './components/Overlay';
|
|
16
16
|
export { UniversalOnboarding } from './components/UniversalOnboarding';
|
|
17
17
|
|
|
18
|
+
// Export Portal components
|
|
19
|
+
export { Portal, PortalHost } from './utils/Portal';
|
|
20
|
+
|
|
18
21
|
// Screen Components
|
|
19
22
|
export { ConnectorScreen } from './components/screens/ConnectorScreen';
|
|
20
23
|
export { PinCreationScreen } from './components/screens/PinCreationScreen';
|
|
@@ -106,6 +109,7 @@ export * from './utils/encryption';
|
|
|
106
109
|
// Define component types for default export using React.ComponentType
|
|
107
110
|
import * as React from 'react';
|
|
108
111
|
import type { OnairosButtonProps, UniversalOnboardingProps } from './types';
|
|
112
|
+
import { PortalHost } from './utils/Portal';
|
|
109
113
|
|
|
110
114
|
interface OverlayComponent extends React.FC<any> {}
|
|
111
115
|
interface OnairosComponent extends React.FC<any> {}
|
|
@@ -116,6 +120,7 @@ const components = {
|
|
|
116
120
|
OnairosButton: OnairosButton as React.ComponentType<OnairosButtonProps>,
|
|
117
121
|
OnairosOverlay: Overlay as OverlayComponent,
|
|
118
122
|
UniversalOnboarding: UniversalOnboarding as React.ComponentType<UniversalOnboardingProps>,
|
|
123
|
+
PortalHost: PortalHost,
|
|
119
124
|
};
|
|
120
125
|
|
|
121
126
|
// Export the components as the default export
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
// Store for portal instances
|
|
5
|
+
const portalRefs: {[key: string]: React.ReactNode} = {};
|
|
6
|
+
let portalId = 0;
|
|
7
|
+
|
|
8
|
+
// Context to pass portal host state
|
|
9
|
+
const PortalContext = React.createContext<{
|
|
10
|
+
mount: (children: React.ReactNode) => number;
|
|
11
|
+
update: (key: number, children: React.ReactNode) => void;
|
|
12
|
+
unmount: (key: number) => void;
|
|
13
|
+
}>({
|
|
14
|
+
mount: () => 0,
|
|
15
|
+
update: () => {},
|
|
16
|
+
unmount: () => {},
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Portal Host component - place this at the root of your app
|
|
21
|
+
*/
|
|
22
|
+
export const PortalHost: React.FC<{children?: React.ReactNode}> = ({ children }) => {
|
|
23
|
+
const [portals, setPortals] = useState<{[key: number]: React.ReactNode}>({});
|
|
24
|
+
|
|
25
|
+
const mount = (children: React.ReactNode) => {
|
|
26
|
+
const key = ++portalId;
|
|
27
|
+
setPortals(state => ({
|
|
28
|
+
...state,
|
|
29
|
+
[key]: children,
|
|
30
|
+
}));
|
|
31
|
+
return key;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const update = (key: number, children: React.ReactNode) => {
|
|
35
|
+
setPortals(state => ({
|
|
36
|
+
...state,
|
|
37
|
+
[key]: children,
|
|
38
|
+
}));
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const unmount = (key: number) => {
|
|
42
|
+
setPortals(state => {
|
|
43
|
+
const newState = { ...state };
|
|
44
|
+
delete newState[key];
|
|
45
|
+
return newState;
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<PortalContext.Provider value={{ mount, update, unmount }}>
|
|
51
|
+
{children}
|
|
52
|
+
{Object.keys(portals).map(key => (
|
|
53
|
+
<View key={key} style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, zIndex: 9999 }}>
|
|
54
|
+
{portals[Number(key)]}
|
|
55
|
+
</View>
|
|
56
|
+
))}
|
|
57
|
+
</PortalContext.Provider>
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Portal component - renders children into the PortalHost
|
|
63
|
+
*/
|
|
64
|
+
export const Portal: React.FC<{children: React.ReactNode}> = ({ children }) => {
|
|
65
|
+
const { mount, update, unmount } = React.useContext(PortalContext);
|
|
66
|
+
const [portalId, setPortalId] = useState<number | null>(null);
|
|
67
|
+
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
const id = mount(children);
|
|
70
|
+
setPortalId(id);
|
|
71
|
+
return () => {
|
|
72
|
+
if (portalId) unmount(portalId);
|
|
73
|
+
};
|
|
74
|
+
}, []);
|
|
75
|
+
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (portalId !== null) {
|
|
78
|
+
update(portalId, children);
|
|
79
|
+
}
|
|
80
|
+
}, [children, portalId]);
|
|
81
|
+
|
|
82
|
+
return null;
|
|
83
|
+
};
|