cozy-intent
Version:
Event-based library allowing interactions between React-Native and React applications
62 lines (46 loc) • 2.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.WebviewMessenger = exports.DebugWebviewMessenger = void 0;
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _postMe = require("post-me");
var WebviewMessenger = /*#__PURE__*/(0, _createClass2.default)(function WebviewMessenger(windowRef) {
var _this = this;
(0, _classCallCheck2.default)(this, WebviewMessenger);
(0, _defineProperty2.default)(this, "windowRef", void 0);
(0, _defineProperty2.default)(this, "postMessage", function (message) {
var _this$windowRef;
return (_this$windowRef = _this.windowRef) === null || _this$windowRef === void 0 ? void 0 : _this$windowRef.ReactNativeWebView.postMessage(JSON.stringify(message));
});
(0, _defineProperty2.default)(this, "addMessageListener", function (listener) {
var _this$windowRef2;
var outerListener = function outerListener(event) {
return listener(event);
};
(_this$windowRef2 = _this.windowRef) === null || _this$windowRef2 === void 0 ? void 0 : _this$windowRef2.addEventListener('message', outerListener);
var removeMessageListener = function removeMessageListener() {
var _this$windowRef3;
return (_this$windowRef3 = _this.windowRef) === null || _this$windowRef3 === void 0 ? void 0 : _this$windowRef3.removeEventListener('message', outerListener);
};
return removeMessageListener;
});
this.windowRef = windowRef;
});
exports.WebviewMessenger = WebviewMessenger;
var DebugWebviewMessenger = function DebugWebviewMessenger(messenger) {
var log = (0, _postMe.debug)('WebviewMessenger');
return {
postMessage: function postMessage(message) {
if (message.action !== 'response') log('- OUT', message);
messenger.postMessage(message);
},
addMessageListener: function addMessageListener(listener) {
return messenger.addMessageListener(listener);
}
};
};
exports.DebugWebviewMessenger = DebugWebviewMessenger;