UNPKG

cozy-intent

Version:

Event-based library allowing interactions between React-Native and React applications

62 lines (46 loc) 2.3 kB
"use strict"; 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;