matrix-react-sdk
Version:
SDK for matrix.org using React
60 lines (56 loc) • 5.97 kB
JavaScript
;
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==