UNPKG

matrix-react-sdk

Version:
86 lines (82 loc) 10.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.WidgetMessagingStoreEvent = exports.WidgetMessagingStore = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _AsyncStoreWithClient = require("../AsyncStoreWithClient"); var _dispatcher = _interopRequireDefault(require("../../dispatcher/dispatcher")); var _maps = require("../../utils/maps"); var _WidgetUtils = _interopRequireDefault(require("../../utils/WidgetUtils")); var _WidgetMessagingStore; /* * Copyright 2024 New Vector Ltd. * Copyright 2020 The Matrix.org Foundation C.I.C. * * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only * Please see LICENSE files in the repository root for full details. */ let WidgetMessagingStoreEvent = exports.WidgetMessagingStoreEvent = /*#__PURE__*/function (WidgetMessagingStoreEvent) { WidgetMessagingStoreEvent["StoreMessaging"] = "store_messaging"; WidgetMessagingStoreEvent["StopMessaging"] = "stop_messaging"; return WidgetMessagingStoreEvent; }({}); /** * Temporary holding store for widget messaging instances. This is eventually * going to be merged with a more complete WidgetStore, but for now it's * easiest to split this into a single place. */ class WidgetMessagingStore extends _AsyncStoreWithClient.AsyncStoreWithClient { // <widget UID, ClientWidgetAPi> constructor() { super(_dispatcher.default); (0, _defineProperty2.default)(this, "widgetMap", new _maps.EnhancedMap()); } static get instance() { return WidgetMessagingStore.internalInstance; } async onAction(payload) { // nothing to do } async onReady() { // just in case this.widgetMap.clear(); } storeMessaging(widget, roomId, widgetApi) { this.stopMessaging(widget, roomId); const uid = _WidgetUtils.default.calcWidgetUid(widget.id, roomId); this.widgetMap.set(uid, widgetApi); this.emit(WidgetMessagingStoreEvent.StoreMessaging, uid, widgetApi); } stopMessaging(widget, roomId) { this.stopMessagingByUid(_WidgetUtils.default.calcWidgetUid(widget.id, roomId)); } getMessaging(widget, roomId) { return this.widgetMap.get(_WidgetUtils.default.calcWidgetUid(widget.id, roomId)); } /** * Stops the widget messaging instance for a given widget UID. * @param {string} widgetUid The widget UID. */ stopMessagingByUid(widgetUid) { this.widgetMap.remove(widgetUid)?.stop(); this.emit(WidgetMessagingStoreEvent.StopMessaging, widgetUid); } /** * Gets the widget messaging class for a given widget UID. * @param {string} widgetUid The widget UID. * @returns {ClientWidgetApi} The widget API, or a falsy value if not found. */ getMessagingForUid(widgetUid) { return this.widgetMap.get(widgetUid); } } exports.WidgetMessagingStore = WidgetMessagingStore; _WidgetMessagingStore = WidgetMessagingStore; (0, _defineProperty2.default)(WidgetMessagingStore, "internalInstance", (() => { const instance = new _WidgetMessagingStore(); instance.start(); return instance; })()); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXN5bmNTdG9yZVdpdGhDbGllbnQiLCJyZXF1aXJlIiwiX2Rpc3BhdGNoZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX21hcHMiLCJfV2lkZ2V0VXRpbHMiLCJfV2lkZ2V0TWVzc2FnaW5nU3RvcmUiLCJXaWRnZXRNZXNzYWdpbmdTdG9yZUV2ZW50IiwiZXhwb3J0cyIsIldpZGdldE1lc3NhZ2luZ1N0b3JlIiwiQXN5bmNTdG9yZVdpdGhDbGllbnQiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHREaXNwYXRjaGVyIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJFbmhhbmNlZE1hcCIsImluc3RhbmNlIiwiaW50ZXJuYWxJbnN0YW5jZSIsIm9uQWN0aW9uIiwicGF5bG9hZCIsIm9uUmVhZHkiLCJ3aWRnZXRNYXAiLCJjbGVhciIsInN0b3JlTWVzc2FnaW5nIiwid2lkZ2V0Iiwicm9vbUlkIiwid2lkZ2V0QXBpIiwic3RvcE1lc3NhZ2luZyIsInVpZCIsIldpZGdldFV0aWxzIiwiY2FsY1dpZGdldFVpZCIsImlkIiwic2V0IiwiZW1pdCIsIlN0b3JlTWVzc2FnaW5nIiwic3RvcE1lc3NhZ2luZ0J5VWlkIiwiZ2V0TWVzc2FnaW5nIiwiZ2V0Iiwid2lkZ2V0VWlkIiwicmVtb3ZlIiwic3RvcCIsIlN0b3BNZXNzYWdpbmciLCJnZXRNZXNzYWdpbmdGb3JVaWQiLCJzdGFydCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yZXMvd2lkZ2V0cy9XaWRnZXRNZXNzYWdpbmdTdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG5pbXBvcnQgeyBDbGllbnRXaWRnZXRBcGksIFdpZGdldCB9IGZyb20gXCJtYXRyaXgtd2lkZ2V0LWFwaVwiO1xuXG5pbXBvcnQgeyBBc3luY1N0b3JlV2l0aENsaWVudCB9IGZyb20gXCIuLi9Bc3luY1N0b3JlV2l0aENsaWVudFwiO1xuaW1wb3J0IGRlZmF1bHREaXNwYXRjaGVyIGZyb20gXCIuLi8uLi9kaXNwYXRjaGVyL2Rpc3BhdGNoZXJcIjtcbmltcG9ydCB7IEFjdGlvblBheWxvYWQgfSBmcm9tIFwiLi4vLi4vZGlzcGF0Y2hlci9wYXlsb2Fkc1wiO1xuaW1wb3J0IHsgRW5oYW5jZWRNYXAgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWFwc1wiO1xuaW1wb3J0IFdpZGdldFV0aWxzIGZyb20gXCIuLi8uLi91dGlscy9XaWRnZXRVdGlsc1wiO1xuXG5leHBvcnQgZW51bSBXaWRnZXRNZXNzYWdpbmdTdG9yZUV2ZW50IHtcbiAgICBTdG9yZU1lc3NhZ2luZyA9IFwic3RvcmVfbWVzc2FnaW5nXCIsXG4gICAgU3RvcE1lc3NhZ2luZyA9IFwic3RvcF9tZXNzYWdpbmdcIixcbn1cblxuLyoqXG4gKiBUZW1wb3JhcnkgaG9sZGluZyBzdG9yZSBmb3Igd2lkZ2V0IG1lc3NhZ2luZyBpbnN0YW5jZXMuIFRoaXMgaXMgZXZlbnR1YWxseVxuICogZ29pbmcgdG8gYmUgbWVyZ2VkIHdpdGggYSBtb3JlIGNvbXBsZXRlIFdpZGdldFN0b3JlLCBidXQgZm9yIG5vdyBpdCdzXG4gKiBlYXNpZXN0IHRvIHNwbGl0IHRoaXMgaW50byBhIHNpbmdsZSBwbGFjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFdpZGdldE1lc3NhZ2luZ1N0b3JlIGV4dGVuZHMgQXN5bmNTdG9yZVdpdGhDbGllbnQ8e30+IHtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBpbnRlcm5hbEluc3RhbmNlID0gKCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgV2lkZ2V0TWVzc2FnaW5nU3RvcmUoKTtcbiAgICAgICAgaW5zdGFuY2Uuc3RhcnQoKTtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH0pKCk7XG5cbiAgICBwcml2YXRlIHdpZGdldE1hcCA9IG5ldyBFbmhhbmNlZE1hcDxzdHJpbmcsIENsaWVudFdpZGdldEFwaT4oKTsgLy8gPHdpZGdldCBVSUQsIENsaWVudFdpZGdldEFQaT5cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoZGVmYXVsdERpc3BhdGNoZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IFdpZGdldE1lc3NhZ2luZ1N0b3JlIHtcbiAgICAgICAgcmV0dXJuIFdpZGdldE1lc3NhZ2luZ1N0b3JlLmludGVybmFsSW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIG9uQWN0aW9uKHBheWxvYWQ6IEFjdGlvblBheWxvYWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gbm90aGluZyB0byBkb1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBvblJlYWR5KCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIGp1c3QgaW4gY2FzZVxuICAgICAgICB0aGlzLndpZGdldE1hcC5jbGVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdG9yZU1lc3NhZ2luZyh3aWRnZXQ6IFdpZGdldCwgcm9vbUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsIHdpZGdldEFwaTogQ2xpZW50V2lkZ2V0QXBpKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcE1lc3NhZ2luZyh3aWRnZXQsIHJvb21JZCk7XG4gICAgICAgIGNvbnN0IHVpZCA9IFdpZGdldFV0aWxzLmNhbGNXaWRnZXRVaWQod2lkZ2V0LmlkLCByb29tSWQpO1xuICAgICAgICB0aGlzLndpZGdldE1hcC5zZXQodWlkLCB3aWRnZXRBcGkpO1xuXG4gICAgICAgIHRoaXMuZW1pdChXaWRnZXRNZXNzYWdpbmdTdG9yZUV2ZW50LlN0b3JlTWVzc2FnaW5nLCB1aWQsIHdpZGdldEFwaSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0b3BNZXNzYWdpbmcod2lkZ2V0OiBXaWRnZXQsIHJvb21JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcE1lc3NhZ2luZ0J5VWlkKFdpZGdldFV0aWxzLmNhbGNXaWRnZXRVaWQod2lkZ2V0LmlkLCByb29tSWQpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TWVzc2FnaW5nKHdpZGdldDogV2lkZ2V0LCByb29tSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IENsaWVudFdpZGdldEFwaSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldE1hcC5nZXQoV2lkZ2V0VXRpbHMuY2FsY1dpZGdldFVpZCh3aWRnZXQuaWQsIHJvb21JZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3BzIHRoZSB3aWRnZXQgbWVzc2FnaW5nIGluc3RhbmNlIGZvciBhIGdpdmVuIHdpZGdldCBVSUQuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHdpZGdldFVpZCBUaGUgd2lkZ2V0IFVJRC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RvcE1lc3NhZ2luZ0J5VWlkKHdpZGdldFVpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2lkZ2V0TWFwLnJlbW92ZSh3aWRnZXRVaWQpPy5zdG9wKCk7XG4gICAgICAgIHRoaXMuZW1pdChXaWRnZXRNZXNzYWdpbmdTdG9yZUV2ZW50LlN0b3BNZXNzYWdpbmcsIHdpZGdldFVpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgd2lkZ2V0IG1lc3NhZ2luZyBjbGFzcyBmb3IgYSBnaXZlbiB3aWRnZXQgVUlELlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB3aWRnZXRVaWQgVGhlIHdpZGdldCBVSUQuXG4gICAgICogQHJldHVybnMge0NsaWVudFdpZGdldEFwaX0gVGhlIHdpZGdldCBBUEksIG9yIGEgZmFsc3kgdmFsdWUgaWYgbm90IGZvdW5kLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNZXNzYWdpbmdGb3JVaWQod2lkZ2V0VWlkOiBzdHJpbmcpOiBDbGllbnRXaWRnZXRBcGkgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXRNYXAuZ2V0KHdpZGdldFVpZCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVVBLElBQUFBLHFCQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBa0QsSUFBQUsscUJBQUE7QUFkbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQSxJQWdCWUMseUJBQXlCLEdBQUFDLE9BQUEsQ0FBQUQseUJBQUEsMEJBQXpCQSx5QkFBeUI7RUFBekJBLHlCQUF5QjtFQUF6QkEseUJBQXlCO0VBQUEsT0FBekJBLHlCQUF5QjtBQUFBO0FBS3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNRSxvQkFBb0IsU0FBU0MsMENBQW9CLENBQUs7RUFPQzs7RUFFekRDLFdBQVdBLENBQUEsRUFBRztJQUNqQixLQUFLLENBQUNDLG1CQUFpQixDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxxQkFIVCxJQUFJQyxpQkFBVyxDQUEwQixDQUFDO0VBSTlEO0VBRUEsV0FBa0JDLFFBQVFBLENBQUEsRUFBeUI7SUFDL0MsT0FBT1Asb0JBQW9CLENBQUNRLGdCQUFnQjtFQUNoRDtFQUVBLE1BQWdCQyxRQUFRQSxDQUFDQyxPQUFzQixFQUFpQjtJQUM1RDtFQUFBO0VBR0osTUFBZ0JDLE9BQU9BLENBQUEsRUFBaUI7SUFDcEM7SUFDQSxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDLENBQUM7RUFDMUI7RUFFT0MsY0FBY0EsQ0FBQ0MsTUFBYyxFQUFFQyxNQUEwQixFQUFFQyxTQUEwQixFQUFRO0lBQ2hHLElBQUksQ0FBQ0MsYUFBYSxDQUFDSCxNQUFNLEVBQUVDLE1BQU0sQ0FBQztJQUNsQyxNQUFNRyxHQUFHLEdBQUdDLG9CQUFXLENBQUNDLGFBQWEsQ0FBQ04sTUFBTSxDQUFDTyxFQUFFLEVBQUVOLE1BQU0sQ0FBQztJQUN4RCxJQUFJLENBQUNKLFNBQVMsQ0FBQ1csR0FBRyxDQUFDSixHQUFHLEVBQUVGLFNBQVMsQ0FBQztJQUVsQyxJQUFJLENBQUNPLElBQUksQ0FBQzFCLHlCQUF5QixDQUFDMkIsY0FBYyxFQUFFTixHQUFHLEVBQUVGLFNBQVMsQ0FBQztFQUN2RTtFQUVPQyxhQUFhQSxDQUFDSCxNQUFjLEVBQUVDLE1BQTBCLEVBQVE7SUFDbkUsSUFBSSxDQUFDVSxrQkFBa0IsQ0FBQ04sb0JBQVcsQ0FBQ0MsYUFBYSxDQUFDTixNQUFNLENBQUNPLEVBQUUsRUFBRU4sTUFBTSxDQUFDLENBQUM7RUFDekU7RUFFT1csWUFBWUEsQ0FBQ1osTUFBYyxFQUFFQyxNQUEwQixFQUErQjtJQUN6RixPQUFPLElBQUksQ0FBQ0osU0FBUyxDQUFDZ0IsR0FBRyxDQUFDUixvQkFBVyxDQUFDQyxhQUFhLENBQUNOLE1BQU0sQ0FBQ08sRUFBRSxFQUFFTixNQUFNLENBQUMsQ0FBQztFQUMzRTs7RUFFQTtBQUNKO0FBQ0E7QUFDQTtFQUNXVSxrQkFBa0JBLENBQUNHLFNBQWlCLEVBQVE7SUFDL0MsSUFBSSxDQUFDakIsU0FBUyxDQUFDa0IsTUFBTSxDQUFDRCxTQUFTLENBQUMsRUFBRUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDUCxJQUFJLENBQUMxQix5QkFBeUIsQ0FBQ2tDLGFBQWEsRUFBRUgsU0FBUyxDQUFDO0VBQ2pFOztFQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7RUFDV0ksa0JBQWtCQSxDQUFDSixTQUFpQixFQUErQjtJQUN0RSxPQUFPLElBQUksQ0FBQ2pCLFNBQVMsQ0FBQ2dCLEdBQUcsQ0FBQ0MsU0FBUyxDQUFDO0VBQ3hDO0FBQ0o7QUFBQzlCLE9BQUEsQ0FBQUMsb0JBQUEsR0FBQUEsb0JBQUE7QUFBQUgscUJBQUEsR0EzRFlHLG9CQUFvQjtBQUFBLElBQUFJLGdCQUFBLENBQUFDLE9BQUEsRUFBcEJMLG9CQUFvQixzQkFDYyxDQUFDLE1BQU07RUFDOUMsTUFBTU8sUUFBUSxHQUFHLElBQUlQLHFCQUFvQixDQUFDLENBQUM7RUFDM0NPLFFBQVEsQ0FBQzJCLEtBQUssQ0FBQyxDQUFDO0VBQ2hCLE9BQU8zQixRQUFRO0FBQ25CLENBQUMsRUFBRSxDQUFDIiwiaWdub3JlTGlzdCI6W119