UNPKG

matrix-react-sdk

Version:
60 lines (56 loc) 5.97 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.PlatformPeg = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _dispatcher = _interopRequireDefault(require("./dispatcher/dispatcher")); var _actions = require("./dispatcher/actions"); /* Copyright 2024 New Vector Ltd. Copyright 2020 The Matrix.org Foundation C.I.C. Copyright 2016 OpenMarket Ltd SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /* * Holds the current instance of the `Platform` to use across the codebase. * Looking for an `Platform`? Just look for the `PlatformPeg` on the peg board. * "Peg" is the literal meaning of something you hang something on. So you'll * find a `Platform` hanging on the `PlatformPeg`. * * Used by the code to do anything specific to the platform we're running on * (eg. web, electron). Platforms are provided by the app layer. This allows the * app layer to set a Platform without necessarily having to have a MatrixChat * object. */ class PlatformPeg { constructor() { (0, _defineProperty2.default)(this, "platform", null); } /** * Returns the current Platform object for the application. * This should be an instance of a class extending BasePlatform. */ get() { return this.platform; } /** * Sets the current platform handler object to use for the application. * @param {BasePlatform} platform an instance of a class extending BasePlatform. */ set(platform) { this.platform = platform; _dispatcher.default.dispatch({ action: _actions.Action.PlatformSet, platform }); } } exports.PlatformPeg = PlatformPeg; if (!window.mxPlatformPeg) { window.mxPlatformPeg = new PlatformPeg(); } var _default = exports.default = window.mxPlatformPeg; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGlzcGF0Y2hlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJQbGF0Zm9ybVBlZyIsImNvbnN0cnVjdG9yIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJnZXQiLCJwbGF0Zm9ybSIsInNldCIsImRlZmF1bHREaXNwYXRjaGVyIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJBY3Rpb24iLCJQbGF0Zm9ybVNldCIsImV4cG9ydHMiLCJ3aW5kb3ciLCJteFBsYXRmb3JtUGVnIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvUGxhdGZvcm1QZWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBCYXNlUGxhdGZvcm0gZnJvbSBcIi4vQmFzZVBsYXRmb3JtXCI7XG5pbXBvcnQgZGVmYXVsdERpc3BhdGNoZXIgZnJvbSBcIi4vZGlzcGF0Y2hlci9kaXNwYXRjaGVyXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi9kaXNwYXRjaGVyL2FjdGlvbnNcIjtcbmltcG9ydCB7IFBsYXRmb3JtU2V0UGF5bG9hZCB9IGZyb20gXCIuL2Rpc3BhdGNoZXIvcGF5bG9hZHMvUGxhdGZvcm1TZXRQYXlsb2FkXCI7XG5cbi8qXG4gKiBIb2xkcyB0aGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGUgYFBsYXRmb3JtYCB0byB1c2UgYWNyb3NzIHRoZSBjb2RlYmFzZS5cbiAqIExvb2tpbmcgZm9yIGFuIGBQbGF0Zm9ybWA/IEp1c3QgbG9vayBmb3IgdGhlIGBQbGF0Zm9ybVBlZ2Agb24gdGhlIHBlZyBib2FyZC5cbiAqIFwiUGVnXCIgaXMgdGhlIGxpdGVyYWwgbWVhbmluZyBvZiBzb21ldGhpbmcgeW91IGhhbmcgc29tZXRoaW5nIG9uLiBTbyB5b3UnbGxcbiAqIGZpbmQgYSBgUGxhdGZvcm1gIGhhbmdpbmcgb24gdGhlIGBQbGF0Zm9ybVBlZ2AuXG4gKlxuICogVXNlZCBieSB0aGUgY29kZSB0byBkbyBhbnl0aGluZyBzcGVjaWZpYyB0byB0aGUgcGxhdGZvcm0gd2UncmUgcnVubmluZyBvblxuICogKGVnLiB3ZWIsIGVsZWN0cm9uKS4gUGxhdGZvcm1zIGFyZSBwcm92aWRlZCBieSB0aGUgYXBwIGxheWVyLiBUaGlzIGFsbG93cyB0aGVcbiAqIGFwcCBsYXllciB0byBzZXQgYSBQbGF0Zm9ybSB3aXRob3V0IG5lY2Vzc2FyaWx5IGhhdmluZyB0byBoYXZlIGEgTWF0cml4Q2hhdFxuICogb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1QZWcge1xuICAgIHByaXZhdGUgcGxhdGZvcm06IEJhc2VQbGF0Zm9ybSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBQbGF0Zm9ybSBvYmplY3QgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICAgKiBUaGlzIHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzIGV4dGVuZGluZyBCYXNlUGxhdGZvcm0uXG4gICAgICovXG4gICAgcHVibGljIGdldCgpOiBCYXNlUGxhdGZvcm0gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhdGZvcm07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCBwbGF0Zm9ybSBoYW5kbGVyIG9iamVjdCB0byB1c2UgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0Jhc2VQbGF0Zm9ybX0gcGxhdGZvcm0gYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyBleHRlbmRpbmcgQmFzZVBsYXRmb3JtLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQocGxhdGZvcm06IEJhc2VQbGF0Zm9ybSk6IHZvaWQge1xuICAgICAgICB0aGlzLnBsYXRmb3JtID0gcGxhdGZvcm07XG4gICAgICAgIGRlZmF1bHREaXNwYXRjaGVyLmRpc3BhdGNoPFBsYXRmb3JtU2V0UGF5bG9hZD4oe1xuICAgICAgICAgICAgYWN0aW9uOiBBY3Rpb24uUGxhdGZvcm1TZXQsXG4gICAgICAgICAgICBwbGF0Zm9ybSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5pZiAoIXdpbmRvdy5teFBsYXRmb3JtUGVnKSB7XG4gICAgd2luZG93Lm14UGxhdGZvcm1QZWcgPSBuZXcgUGxhdGZvcm1QZWcoKTtcbn1cbmV4cG9ydCBkZWZhdWx0IHdpbmRvdy5teFBsYXRmb3JtUGVnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVVBLElBQUFBLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQVhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1FLFdBQVcsQ0FBQztFQUFBQyxZQUFBO0lBQUEsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxvQkFDbUIsSUFBSTtFQUFBO0VBRTVDO0FBQ0o7QUFDQTtBQUNBO0VBQ1dDLEdBQUdBLENBQUEsRUFBd0I7SUFDOUIsT0FBTyxJQUFJLENBQUNDLFFBQVE7RUFDeEI7O0VBRUE7QUFDSjtBQUNBO0FBQ0E7RUFDV0MsR0FBR0EsQ0FBQ0QsUUFBc0IsRUFBUTtJQUNyQyxJQUFJLENBQUNBLFFBQVEsR0FBR0EsUUFBUTtJQUN4QkUsbUJBQWlCLENBQUNDLFFBQVEsQ0FBcUI7TUFDM0NDLE1BQU0sRUFBRUMsZUFBTSxDQUFDQyxXQUFXO01BQzFCTjtJQUNKLENBQUMsQ0FBQztFQUNOO0FBQ0o7QUFBQ08sT0FBQSxDQUFBWixXQUFBLEdBQUFBLFdBQUE7QUFFRCxJQUFJLENBQUNhLE1BQU0sQ0FBQ0MsYUFBYSxFQUFFO0VBQ3ZCRCxNQUFNLENBQUNDLGFBQWEsR0FBRyxJQUFJZCxXQUFXLENBQUMsQ0FBQztBQUM1QztBQUFDLElBQUFlLFFBQUEsR0FBQUgsT0FBQSxDQUFBVCxPQUFBLEdBQ2NVLE1BQU0sQ0FBQ0MsYUFBYSIsImlnbm9yZUxpc3QiOltdfQ==