@formidable-webview/webshell
Version:
🔥 Craft Robust React Native WebView-based components with ease.
61 lines (44 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.WebRMIController = void 0;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function javaScript(snippets) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return snippets.reduce(function (buffer, currentSnippet, index) {
buffer.push(currentSnippet, JSON.stringify(args[index]) || '');
return buffer;
}, []).join('');
}
var WebRMIController = /*#__PURE__*/function () {
function WebRMIController(webViewRef, reporter) {
_classCallCheck(this, WebRMIController);
_defineProperty(this, "webViewRef", void 0);
_defineProperty(this, "reporter", void 0);
this.webViewRef = webViewRef;
this.reporter = reporter;
}
_createClass(WebRMIController, [{
key: "injectJavaScript",
value: function injectJavaScript(snippets) {
var _this$webViewRef$curr;
if (this.webViewRef.current && !this.webViewRef.current.injectJavaScript) {
this.reporter.dispatchError('WEBSH_WEBVIEW_MISSING_MEMBER');
return;
}
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
(_this$webViewRef$curr = this.webViewRef.current) === null || _this$webViewRef$curr === void 0 ? void 0 : _this$webViewRef$curr.injectJavaScript(javaScript.apply(void 0, [snippets].concat(args)));
}
}]);
return WebRMIController;
}();
exports.WebRMIController = WebRMIController;
//# sourceMappingURL=WebRMIController.js.map