@ionic/portals-react-native 0.7.1 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/ReactNativePortals.podspec +5 -5
- package/android/build.gradle +2 -2
- package/android/src/main/java/io/ionic/portals/reactnative/ReactNativePortalsPubSub.kt +16 -2
- package/lib/commonjs/BasePortalView.android.js +28 -0
- package/lib/commonjs/BasePortalView.android.js.map +1 -0
- package/lib/commonjs/BasePortalView.js +15 -0
- package/lib/commonjs/BasePortalView.js.map +1 -0
- package/lib/commonjs/index.js +150 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/BasePortalView.android.js +20 -0
- package/lib/module/BasePortalView.android.js.map +1 -0
- package/lib/module/BasePortalView.js +8 -0
- package/lib/module/BasePortalView.js.map +1 -0
- package/lib/module/index.js +137 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/src/BasePortalView.android.d.ts +4 -0
- package/lib/typescript/src/BasePortalView.android.d.ts.map +1 -0
- package/lib/typescript/src/BasePortalView.d.ts +4 -0
- package/lib/typescript/src/BasePortalView.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +159 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +18 -8
- package/ios/Podfile +0 -39
- package/ios/Podfile.lock +0 -623
package/README.md
CHANGED
|
@@ -30,13 +30,13 @@ See our docs to [get started with Portals](https://ionic.io/docs/portals/getting
|
|
|
30
30
|
|
|
31
31
|
## Registration
|
|
32
32
|
|
|
33
|
-
The Ionic Portals library for React Native requires a
|
|
33
|
+
The Ionic Portals library for React Native requires a license key to use. Once you have integrated Portals into your project, login to your ionic account to get a key. See our doc on [how to register for free and get your Portals license key](https://ionic.io/docs/portals/how-to/get-a-product-key) and refer to the [React Native](https://ionic.io/docs/portals/getting-started/react-native) getting started guides to see where to add your key.
|
|
34
34
|
|
|
35
35
|
## FAQ
|
|
36
36
|
|
|
37
37
|
### What is the pricing for Portals use?
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
[Contact our sales team](https://ionic.io/portals#sales) for more information about pricing.
|
|
40
40
|
|
|
41
41
|
### Is Portals Open Source?
|
|
42
42
|
|
|
@@ -11,7 +11,7 @@ Pod::Spec.new do |s|
|
|
|
11
11
|
s.license = package["license"]
|
|
12
12
|
s.authors = package["author"]
|
|
13
13
|
|
|
14
|
-
s.platforms = { :ios =>
|
|
14
|
+
s.platforms = { :ios => '14.0' }
|
|
15
15
|
s.source = { :git => "https://github.com/ionic-team/ionic-portals-react-native.git", :tag => "#{s.version}" }
|
|
16
16
|
|
|
17
17
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
@@ -19,14 +19,14 @@ Pod::Spec.new do |s|
|
|
|
19
19
|
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
|
|
20
20
|
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
|
|
21
21
|
if respond_to?(:install_modules_dependencies, true)
|
|
22
|
-
s.dependency 'IonicPortals', '~> 0.
|
|
23
|
-
s.dependency 'IonicLiveUpdates', '~> 0.5.
|
|
22
|
+
s.dependency 'IonicPortals', '~> 0.12.0'
|
|
23
|
+
s.dependency 'IonicLiveUpdates', '~> 0.5.6'
|
|
24
24
|
install_modules_dependencies(s)
|
|
25
25
|
|
|
26
26
|
else
|
|
27
27
|
s.dependency "React-Core"
|
|
28
|
-
s.dependency 'IonicPortals', '~> 0.
|
|
29
|
-
s.dependency 'IonicLiveUpdates', '~> 0.5.
|
|
28
|
+
s.dependency 'IonicPortals', '~> 0.12.0'
|
|
29
|
+
s.dependency 'IonicLiveUpdates', '~> 0.5.6'
|
|
30
30
|
|
|
31
31
|
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
32
32
|
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
package/android/build.gradle
CHANGED
|
@@ -8,7 +8,7 @@ buildscript {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
dependencies {
|
|
11
|
-
classpath "com.android.tools.build:gradle:7.2
|
|
11
|
+
classpath "com.android.tools.build:gradle:8.7.2"
|
|
12
12
|
// noinspection DifferentKotlinGradleVersion
|
|
13
13
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
14
14
|
}
|
|
@@ -95,7 +95,7 @@ dependencies {
|
|
|
95
95
|
//noinspection GradleDynamicVersion
|
|
96
96
|
implementation "com.facebook.react:react-native:+"
|
|
97
97
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
98
|
-
implementation "io.ionic:portals:0.
|
|
98
|
+
implementation "io.ionic:portals:0.12.+"
|
|
99
99
|
implementation "io.ionic:liveupdates:0.5.+"
|
|
100
100
|
}
|
|
101
101
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package io.ionic.portals.reactnative
|
|
2
2
|
|
|
3
|
+
import android.util.Log
|
|
3
4
|
import com.facebook.react.bridge.*
|
|
4
5
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
5
6
|
import com.getcapacitor.JSObject
|
|
@@ -27,12 +28,25 @@ internal class PortalsPubSubModule(reactContext: ReactApplicationContext) :
|
|
|
27
28
|
.emit(eventName, result.toJSObject().toReactMap())
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
subscriptionRefs[
|
|
31
|
+
subscriptionRefs[topic] = ref
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
@ReactMethod
|
|
34
35
|
fun removeListeners(count: Int) {
|
|
36
|
+
subscriptionRefs.forEach {
|
|
37
|
+
PortalsPubSub.shared.unsubscribe(it.key, it.value)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
subscriptionRefs.clear()
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
|
|
38
|
-
private fun ReadableMap.toJSObject(): JSObject
|
|
44
|
+
private fun ReadableMap.toJSObject(): JSObject {
|
|
45
|
+
val map = toHashMap() as? Map<*, *> ?: return JSObject()
|
|
46
|
+
return try {
|
|
47
|
+
JSObject.fromJSONObject(JSONObject(map))
|
|
48
|
+
} catch (e: Exception) {
|
|
49
|
+
Log.e("PortalsPubSubModule", "Error converting ReadableMap to JSObject", e)
|
|
50
|
+
JSObject()
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
const PortalViewManager = (0, _reactNative.requireNativeComponent)('AndroidPortalView');
|
|
13
|
+
const createFragment = viewId => _reactNative.UIManager.dispatchViewManagerCommand(viewId,
|
|
14
|
+
// we are calling the 'create' command
|
|
15
|
+
// @ts-expect-error
|
|
16
|
+
_reactNative.UIManager.AndroidPortalView.Commands.create.toString(), [viewId]);
|
|
17
|
+
const BasePortalView = props => {
|
|
18
|
+
const ref = (0, _react.useRef)(null);
|
|
19
|
+
(0, _react.useEffect)(() => {
|
|
20
|
+
const viewId = (0, _reactNative.findNodeHandle)(ref.current);
|
|
21
|
+
createFragment(viewId);
|
|
22
|
+
}, []);
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(PortalViewManager, _extends({}, props, {
|
|
24
|
+
ref: ref
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
var _default = exports.default = BasePortalView;
|
|
28
|
+
//# sourceMappingURL=BasePortalView.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","PortalViewManager","requireNativeComponent","createFragment","viewId","UIManager","dispatchViewManagerCommand","AndroidPortalView","Commands","create","toString","BasePortalView","props","ref","useRef","useEffect","findNodeHandle","current","createElement","_default","exports"],"sourceRoot":"../../src","sources":["BasePortalView.android.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIsB,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAW,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAR,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAE,CAAA,IAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAb,CAAA,EAAAD,CAAA,MAAAM,CAAA,CAAAN,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAM,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAEtB,MAAMG,iBAAiB,GAAG,IAAAC,mCAAsB,EAAC,mBAAmB,CAAC;AAErE,MAAMC,cAAc,GAAIC,MAAqB,IAC3CC,sBAAS,CAACC,0BAA0B,CAClCF,MAAM;AACN;AACA;AACAC,sBAAS,CAACE,iBAAiB,CAACC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAAC,CAAC,EACtD,CAACN,MAAM,CACT,CAAC;AAEH,MAAMO,cAAc,GAAIC,KAAU,IAAK;EACrC,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAExB,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMX,MAAM,GAAG,IAAAY,2BAAc,EAACH,GAAG,CAACI,OAAO,CAAC;IAC1Cd,cAAc,CAACC,MAAM,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAOjC,MAAA,CAAAU,OAAA,CAAAqC,aAAA,CAACjB,iBAAiB,EAAAN,QAAA,KAAKiB,KAAK;IAAEC,GAAG,EAAEA;EAAI,EAAE,CAAC;AACnD,CAAC;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAvC,OAAA,GAEa8B,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const HostComponentPortal = (0, _reactNative.requireNativeComponent)('IONPortalView');
|
|
11
|
+
const BasePortalView = props => {
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement(HostComponentPortal, props);
|
|
13
|
+
};
|
|
14
|
+
var _default = exports.default = BasePortalView;
|
|
15
|
+
//# sourceMappingURL=BasePortalView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","HostComponentPortal","requireNativeComponent","BasePortalView","props","createElement","_default","exports"],"sourceRoot":"../../src","sources":["BasePortalView.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAsD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD,MAAMG,mBAAmB,GAAG,IAAAC,mCAAsB,EAAC,eAAe,CAAC;AAEnE,MAAMC,cAAc,GAAIC,KAAU,IAAK;EACrC,oBAAOV,MAAA,CAAAM,OAAA,CAAAK,aAAA,CAACJ,mBAAmB,EAAKG,KAAQ,CAAC;AAC3C,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAP,OAAA,GAEaG,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.syncSome = exports.syncOne = exports.syncAll = exports.subscribe = exports.register = exports.publish = exports.enableSecureLiveUpdates = exports.PortalView = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _BasePortalView = _interopRequireDefault(require("./BasePortalView"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const {
|
|
12
|
+
IONPortalPubSub,
|
|
13
|
+
IONPortalsReactNative,
|
|
14
|
+
IONPortalsWebVitals
|
|
15
|
+
} = _reactNative.NativeModules;
|
|
16
|
+
const PortalView = props => {
|
|
17
|
+
let webVitals;
|
|
18
|
+
if (props.webVitals) {
|
|
19
|
+
webVitals = [];
|
|
20
|
+
if (props.webVitals.firstContentfulPaint) {
|
|
21
|
+
webVitals.push('fcp');
|
|
22
|
+
registerVital(props.portal.name, 'fcp', props.webVitals.firstContentfulPaint);
|
|
23
|
+
}
|
|
24
|
+
if (props.webVitals.firstInputDelay) {
|
|
25
|
+
webVitals.push('fid');
|
|
26
|
+
registerVital(props.portal.name, 'fid', props.webVitals.firstInputDelay);
|
|
27
|
+
}
|
|
28
|
+
if (props.webVitals.timeToFirstByte) {
|
|
29
|
+
webVitals.push('ttfb');
|
|
30
|
+
registerVital(props.portal.name, 'ttfb', props.webVitals.timeToFirstByte);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const newProps = {
|
|
34
|
+
...props,
|
|
35
|
+
webVitals: undefined
|
|
36
|
+
};
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
newProps.portal.webVitals = webVitals;
|
|
39
|
+
return /*#__PURE__*/_react.default.createElement(_BasePortalView.default, newProps);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The data that is received from a subscription event.
|
|
44
|
+
*/
|
|
45
|
+
exports.PortalView = PortalView;
|
|
46
|
+
const PortalsPubSub = new _reactNative.NativeEventEmitter(IONPortalPubSub);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Subscribes to messages for a topic
|
|
50
|
+
*
|
|
51
|
+
* @param topic The topic to subscribe to
|
|
52
|
+
* @param onMessageReceived The callback to invoke when a message is received
|
|
53
|
+
* @returns A Promise<number> containing the unique subscription reference. This will need to be stored for calling {@link unsubscribe}.
|
|
54
|
+
*/
|
|
55
|
+
const subscribe = (topic, onMessageReceived) => {
|
|
56
|
+
return PortalsPubSub.addListener(`PortalsSubscription:${topic}`, message => {
|
|
57
|
+
onMessageReceived(message);
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Publishes a message to the provided topic
|
|
63
|
+
*
|
|
64
|
+
* @param topic The topic to publish the message to
|
|
65
|
+
* @param data The data to publish to subscribers
|
|
66
|
+
*/
|
|
67
|
+
exports.subscribe = subscribe;
|
|
68
|
+
const publish = (topic, data) => {
|
|
69
|
+
const msg = {
|
|
70
|
+
message: data
|
|
71
|
+
};
|
|
72
|
+
IONPortalPubSub.publish(topic, msg);
|
|
73
|
+
};
|
|
74
|
+
exports.publish = publish;
|
|
75
|
+
const webVitalsMap = new Map();
|
|
76
|
+
const WebVitals = new _reactNative.NativeEventEmitter(IONPortalsWebVitals);
|
|
77
|
+
const registerVital = (portalName, vital, callback) => {
|
|
78
|
+
if (_reactNative.Platform.OS === 'ios' && vital !== 'fcp') return;
|
|
79
|
+
const listener = WebVitals.addListener(`vitals:${vital}`, event => {
|
|
80
|
+
if (event.portalName === portalName) {
|
|
81
|
+
callback(event.duration);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
webVitalsMap.set(`${portalName}-vitals:${vital}`, listener);
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Validates that a valid registration key has been procured from http://ionic.io/register-portals
|
|
88
|
+
* @param key The registration key
|
|
89
|
+
* @returns Promise<void>
|
|
90
|
+
*/
|
|
91
|
+
const register = async key => {
|
|
92
|
+
return IONPortalsReactNative.register(key);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* The configuration of a web application to be embedded in a React Native application.
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Props needed for rendering a {@link Portal}
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
/** Data needed to register a live update to be managed */
|
|
104
|
+
|
|
105
|
+
/** Used for communicating sync results of multiple live updates */
|
|
106
|
+
exports.register = register;
|
|
107
|
+
/**
|
|
108
|
+
* Configures LiveUpdates to cyrptographically verify the contents of the downloaded bundles.
|
|
109
|
+
* This method must be called before any LiveUpdates are registered otherwise they will no longer be tracked.
|
|
110
|
+
*
|
|
111
|
+
* @param pathToKey The *relative* path to the public key for verification.
|
|
112
|
+
* This path should be the same relatibe to the main application bundle on iOS and the assets directory on Android.
|
|
113
|
+
* @returns Promise<void>
|
|
114
|
+
*/
|
|
115
|
+
const enableSecureLiveUpdates = async pathToKey => {
|
|
116
|
+
return IONPortalsReactNative.enableSecureLiveUpdates(pathToKey);
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Syncs a single live update.
|
|
121
|
+
*
|
|
122
|
+
* @param appId The AppFlow application ID to sync.
|
|
123
|
+
* @returns A Promise<LiveUpdate>. A failure should result in a {@link LiveUpdateError}.
|
|
124
|
+
*/
|
|
125
|
+
exports.enableSecureLiveUpdates = enableSecureLiveUpdates;
|
|
126
|
+
const syncOne = async appId => {
|
|
127
|
+
return IONPortalsReactNative.syncOne(appId);
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Syncs many live updates.
|
|
132
|
+
*
|
|
133
|
+
* @param appIds The AppFlow application IDs to sync.
|
|
134
|
+
* @returns Promise<SyncResults>
|
|
135
|
+
*/
|
|
136
|
+
exports.syncOne = syncOne;
|
|
137
|
+
const syncSome = async appIds => {
|
|
138
|
+
return IONPortalsReactNative.syncSome(appIds);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Syncs all registered LiveUpdates
|
|
143
|
+
* @returns Promise<SyncResults>
|
|
144
|
+
*/
|
|
145
|
+
exports.syncSome = syncSome;
|
|
146
|
+
const syncAll = async () => {
|
|
147
|
+
return IONPortalsReactNative.syncAll();
|
|
148
|
+
};
|
|
149
|
+
exports.syncAll = syncAll;
|
|
150
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_BasePortalView","e","__esModule","default","IONPortalPubSub","IONPortalsReactNative","IONPortalsWebVitals","NativeModules","PortalView","props","webVitals","firstContentfulPaint","push","registerVital","portal","name","firstInputDelay","timeToFirstByte","newProps","undefined","createElement","exports","PortalsPubSub","NativeEventEmitter","subscribe","topic","onMessageReceived","addListener","message","publish","data","msg","webVitalsMap","Map","WebVitals","portalName","vital","callback","Platform","OS","listener","event","duration","set","register","key","enableSecureLiveUpdates","pathToKey","syncOne","appId","syncSome","appIds","syncAll"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React, { useEffect, useRef } from 'react';
|
|
3
|
+
import { findNodeHandle, requireNativeComponent, UIManager } from 'react-native';
|
|
4
|
+
const PortalViewManager = requireNativeComponent('AndroidPortalView');
|
|
5
|
+
const createFragment = viewId => UIManager.dispatchViewManagerCommand(viewId,
|
|
6
|
+
// we are calling the 'create' command
|
|
7
|
+
// @ts-expect-error
|
|
8
|
+
UIManager.AndroidPortalView.Commands.create.toString(), [viewId]);
|
|
9
|
+
const BasePortalView = props => {
|
|
10
|
+
const ref = useRef(null);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const viewId = findNodeHandle(ref.current);
|
|
13
|
+
createFragment(viewId);
|
|
14
|
+
}, []);
|
|
15
|
+
return /*#__PURE__*/React.createElement(PortalViewManager, _extends({}, props, {
|
|
16
|
+
ref: ref
|
|
17
|
+
}));
|
|
18
|
+
};
|
|
19
|
+
export default BasePortalView;
|
|
20
|
+
//# sourceMappingURL=BasePortalView.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","findNodeHandle","requireNativeComponent","UIManager","PortalViewManager","createFragment","viewId","dispatchViewManagerCommand","AndroidPortalView","Commands","create","toString","BasePortalView","props","ref","current","createElement","_extends"],"sourceRoot":"../../src","sources":["BasePortalView.android.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SACEC,cAAc,EACdC,sBAAsB,EACtBC,SAAS,QACJ,cAAc;AAErB,MAAMC,iBAAiB,GAAGF,sBAAsB,CAAC,mBAAmB,CAAC;AAErE,MAAMG,cAAc,GAAIC,MAAqB,IAC3CH,SAAS,CAACI,0BAA0B,CAClCD,MAAM;AACN;AACA;AACAH,SAAS,CAACK,iBAAiB,CAACC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAAC,CAAC,EACtD,CAACL,MAAM,CACT,CAAC;AAEH,MAAMM,cAAc,GAAIC,KAAU,IAAK;EACrC,MAAMC,GAAG,GAAGd,MAAM,CAAC,IAAI,CAAC;EAExBD,SAAS,CAAC,MAAM;IACd,MAAMO,MAAM,GAAGL,cAAc,CAACa,GAAG,CAACC,OAAO,CAAC;IAC1CV,cAAc,CAACC,MAAM,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAOR,KAAA,CAAAkB,aAAA,CAACZ,iBAAiB,EAAAa,QAAA,KAAKJ,KAAK;IAAEC,GAAG,EAAEA;EAAI,EAAE,CAAC;AACnD,CAAC;AAED,eAAeF,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { requireNativeComponent } from 'react-native';
|
|
3
|
+
const HostComponentPortal = requireNativeComponent('IONPortalView');
|
|
4
|
+
const BasePortalView = props => {
|
|
5
|
+
return /*#__PURE__*/React.createElement(HostComponentPortal, props);
|
|
6
|
+
};
|
|
7
|
+
export default BasePortalView;
|
|
8
|
+
//# sourceMappingURL=BasePortalView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","requireNativeComponent","HostComponentPortal","BasePortalView","props","createElement"],"sourceRoot":"../../src","sources":["BasePortalView.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,QAAQ,cAAc;AAErD,MAAMC,mBAAmB,GAAGD,sBAAsB,CAAC,eAAe,CAAC;AAEnE,MAAME,cAAc,GAAIC,KAAU,IAAK;EACrC,oBAAOJ,KAAA,CAAAK,aAAA,CAACH,mBAAmB,EAAKE,KAAQ,CAAC;AAC3C,CAAC;AAED,eAAeD,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
3
|
+
import BasePortalView from './BasePortalView';
|
|
4
|
+
const {
|
|
5
|
+
IONPortalPubSub,
|
|
6
|
+
IONPortalsReactNative,
|
|
7
|
+
IONPortalsWebVitals
|
|
8
|
+
} = NativeModules;
|
|
9
|
+
export const PortalView = props => {
|
|
10
|
+
let webVitals;
|
|
11
|
+
if (props.webVitals) {
|
|
12
|
+
webVitals = [];
|
|
13
|
+
if (props.webVitals.firstContentfulPaint) {
|
|
14
|
+
webVitals.push('fcp');
|
|
15
|
+
registerVital(props.portal.name, 'fcp', props.webVitals.firstContentfulPaint);
|
|
16
|
+
}
|
|
17
|
+
if (props.webVitals.firstInputDelay) {
|
|
18
|
+
webVitals.push('fid');
|
|
19
|
+
registerVital(props.portal.name, 'fid', props.webVitals.firstInputDelay);
|
|
20
|
+
}
|
|
21
|
+
if (props.webVitals.timeToFirstByte) {
|
|
22
|
+
webVitals.push('ttfb');
|
|
23
|
+
registerVital(props.portal.name, 'ttfb', props.webVitals.timeToFirstByte);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const newProps = {
|
|
27
|
+
...props,
|
|
28
|
+
webVitals: undefined
|
|
29
|
+
};
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
newProps.portal.webVitals = webVitals;
|
|
32
|
+
return /*#__PURE__*/React.createElement(BasePortalView, newProps);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The data that is received from a subscription event.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
const PortalsPubSub = new NativeEventEmitter(IONPortalPubSub);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Subscribes to messages for a topic
|
|
43
|
+
*
|
|
44
|
+
* @param topic The topic to subscribe to
|
|
45
|
+
* @param onMessageReceived The callback to invoke when a message is received
|
|
46
|
+
* @returns A Promise<number> containing the unique subscription reference. This will need to be stored for calling {@link unsubscribe}.
|
|
47
|
+
*/
|
|
48
|
+
export const subscribe = (topic, onMessageReceived) => {
|
|
49
|
+
return PortalsPubSub.addListener(`PortalsSubscription:${topic}`, message => {
|
|
50
|
+
onMessageReceived(message);
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Publishes a message to the provided topic
|
|
56
|
+
*
|
|
57
|
+
* @param topic The topic to publish the message to
|
|
58
|
+
* @param data The data to publish to subscribers
|
|
59
|
+
*/
|
|
60
|
+
export const publish = (topic, data) => {
|
|
61
|
+
const msg = {
|
|
62
|
+
message: data
|
|
63
|
+
};
|
|
64
|
+
IONPortalPubSub.publish(topic, msg);
|
|
65
|
+
};
|
|
66
|
+
const webVitalsMap = new Map();
|
|
67
|
+
const WebVitals = new NativeEventEmitter(IONPortalsWebVitals);
|
|
68
|
+
const registerVital = (portalName, vital, callback) => {
|
|
69
|
+
if (Platform.OS === 'ios' && vital !== 'fcp') return;
|
|
70
|
+
const listener = WebVitals.addListener(`vitals:${vital}`, event => {
|
|
71
|
+
if (event.portalName === portalName) {
|
|
72
|
+
callback(event.duration);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
webVitalsMap.set(`${portalName}-vitals:${vital}`, listener);
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Validates that a valid registration key has been procured from http://ionic.io/register-portals
|
|
79
|
+
* @param key The registration key
|
|
80
|
+
* @returns Promise<void>
|
|
81
|
+
*/
|
|
82
|
+
export const register = async key => {
|
|
83
|
+
return IONPortalsReactNative.register(key);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The configuration of a web application to be embedded in a React Native application.
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Props needed for rendering a {@link Portal}
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
/** Data needed to register a live update to be managed */
|
|
95
|
+
|
|
96
|
+
/** Used for communicating sync results of multiple live updates */
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Configures LiveUpdates to cyrptographically verify the contents of the downloaded bundles.
|
|
100
|
+
* This method must be called before any LiveUpdates are registered otherwise they will no longer be tracked.
|
|
101
|
+
*
|
|
102
|
+
* @param pathToKey The *relative* path to the public key for verification.
|
|
103
|
+
* This path should be the same relatibe to the main application bundle on iOS and the assets directory on Android.
|
|
104
|
+
* @returns Promise<void>
|
|
105
|
+
*/
|
|
106
|
+
export const enableSecureLiveUpdates = async pathToKey => {
|
|
107
|
+
return IONPortalsReactNative.enableSecureLiveUpdates(pathToKey);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Syncs a single live update.
|
|
112
|
+
*
|
|
113
|
+
* @param appId The AppFlow application ID to sync.
|
|
114
|
+
* @returns A Promise<LiveUpdate>. A failure should result in a {@link LiveUpdateError}.
|
|
115
|
+
*/
|
|
116
|
+
export const syncOne = async appId => {
|
|
117
|
+
return IONPortalsReactNative.syncOne(appId);
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Syncs many live updates.
|
|
122
|
+
*
|
|
123
|
+
* @param appIds The AppFlow application IDs to sync.
|
|
124
|
+
* @returns Promise<SyncResults>
|
|
125
|
+
*/
|
|
126
|
+
export const syncSome = async appIds => {
|
|
127
|
+
return IONPortalsReactNative.syncSome(appIds);
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Syncs all registered LiveUpdates
|
|
132
|
+
* @returns Promise<SyncResults>
|
|
133
|
+
*/
|
|
134
|
+
export const syncAll = async () => {
|
|
135
|
+
return IONPortalsReactNative.syncAll();
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","NativeEventEmitter","NativeModules","Platform","BasePortalView","IONPortalPubSub","IONPortalsReactNative","IONPortalsWebVitals","PortalView","props","webVitals","firstContentfulPaint","push","registerVital","portal","name","firstInputDelay","timeToFirstByte","newProps","undefined","createElement","PortalsPubSub","subscribe","topic","onMessageReceived","addListener","message","publish","data","msg","webVitalsMap","Map","WebVitals","portalName","vital","callback","OS","listener","event","duration","set","register","key","enableSecureLiveUpdates","pathToKey","syncOne","appId","syncSome","appIds","syncAll"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasePortalView.android.d.ts","sourceRoot":"","sources":["../../../src/BasePortalView.android.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAkBjD,QAAA,MAAM,cAAc,UAAW,GAAG,sBASjC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasePortalView.d.ts","sourceRoot":"","sources":["../../../src/BasePortalView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,QAAA,MAAM,cAAc,UAAW,GAAG,sBAEjC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|