matrix-react-sdk
Version:
SDK for matrix.org using React
44 lines (40 loc) • 5.22 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _SettingController = _interopRequireDefault(require("./SettingController"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2023 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.
*/
// Dev note: This whole class exists in the event someone logs out and back in - we want
// to make sure the right MatrixClient is listening for changes.
/**
* Represents the base class for settings controllers which need access to a MatrixClient.
* This class performs no logic and should be overridden.
*/
class MatrixClientBackedController extends _SettingController.default {
static set matrixClient(client) {
const oldClient = MatrixClientBackedController._matrixClient;
MatrixClientBackedController._matrixClient = client;
for (const instance of MatrixClientBackedController.instances) {
instance.initMatrixClient(client, oldClient);
}
}
constructor() {
super();
MatrixClientBackedController.instances.push(this);
}
get client() {
return MatrixClientBackedController._matrixClient;
}
}
exports.default = MatrixClientBackedController;
(0, _defineProperty2.default)(MatrixClientBackedController, "_matrixClient", void 0);
(0, _defineProperty2.default)(MatrixClientBackedController, "instances", []);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU2V0dGluZ0NvbnRyb2xsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIk1hdHJpeENsaWVudEJhY2tlZENvbnRyb2xsZXIiLCJTZXR0aW5nQ29udHJvbGxlciIsIm1hdHJpeENsaWVudCIsImNsaWVudCIsIm9sZENsaWVudCIsIl9tYXRyaXhDbGllbnQiLCJpbnN0YW5jZSIsImluc3RhbmNlcyIsImluaXRNYXRyaXhDbGllbnQiLCJjb25zdHJ1Y3RvciIsInB1c2giLCJleHBvcnRzIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eTIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2V0dGluZ3MvY29udHJvbGxlcnMvTWF0cml4Q2xpZW50QmFja2VkQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBNYXRyaXhDbGllbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmltcG9ydCBTZXR0aW5nQ29udHJvbGxlciBmcm9tIFwiLi9TZXR0aW5nQ29udHJvbGxlclwiO1xuXG4vLyBEZXYgbm90ZTogVGhpcyB3aG9sZSBjbGFzcyBleGlzdHMgaW4gdGhlIGV2ZW50IHNvbWVvbmUgbG9ncyBvdXQgYW5kIGJhY2sgaW4gLSB3ZSB3YW50XG4vLyB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IE1hdHJpeENsaWVudCBpcyBsaXN0ZW5pbmcgZm9yIGNoYW5nZXMuXG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYmFzZSBjbGFzcyBmb3Igc2V0dGluZ3MgY29udHJvbGxlcnMgd2hpY2ggbmVlZCBhY2Nlc3MgdG8gYSBNYXRyaXhDbGllbnQuXG4gKiBUaGlzIGNsYXNzIHBlcmZvcm1zIG5vIGxvZ2ljIGFuZCBzaG91bGQgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYWJzdHJhY3QgY2xhc3MgTWF0cml4Q2xpZW50QmFja2VkQ29udHJvbGxlciBleHRlbmRzIFNldHRpbmdDb250cm9sbGVyIHtcbiAgICBwcml2YXRlIHN0YXRpYyBfbWF0cml4Q2xpZW50PzogTWF0cml4Q2xpZW50O1xuICAgIHByaXZhdGUgc3RhdGljIGluc3RhbmNlczogTWF0cml4Q2xpZW50QmFja2VkQ29udHJvbGxlcltdID0gW107XG5cbiAgICBwdWJsaWMgc3RhdGljIHNldCBtYXRyaXhDbGllbnQoY2xpZW50OiBNYXRyaXhDbGllbnQpIHtcbiAgICAgICAgY29uc3Qgb2xkQ2xpZW50ID0gTWF0cml4Q2xpZW50QmFja2VkQ29udHJvbGxlci5fbWF0cml4Q2xpZW50O1xuICAgICAgICBNYXRyaXhDbGllbnRCYWNrZWRDb250cm9sbGVyLl9tYXRyaXhDbGllbnQgPSBjbGllbnQ7XG5cbiAgICAgICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiBNYXRyaXhDbGllbnRCYWNrZWRDb250cm9sbGVyLmluc3RhbmNlcykge1xuICAgICAgICAgICAgaW5zdGFuY2UuaW5pdE1hdHJpeENsaWVudChjbGllbnQsIG9sZENsaWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgTWF0cml4Q2xpZW50QmFja2VkQ29udHJvbGxlci5pbnN0YW5jZXMucHVzaCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsaWVudCgpOiBNYXRyaXhDbGllbnQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gTWF0cml4Q2xpZW50QmFja2VkQ29udHJvbGxlci5fbWF0cml4Q2xpZW50O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbml0TWF0cml4Q2xpZW50KG5ld0NsaWVudDogTWF0cml4Q2xpZW50LCBvbGRDbGllbnQ/OiBNYXRyaXhDbGllbnQpOiB2b2lkO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVVBLElBQUFBLGtCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFNQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsTUFBZUMsNEJBQTRCLFNBQVNDLDBCQUFpQixDQUFDO0VBSWpGLFdBQWtCQyxZQUFZQSxDQUFDQyxNQUFvQixFQUFFO0lBQ2pELE1BQU1DLFNBQVMsR0FBR0osNEJBQTRCLENBQUNLLGFBQWE7SUFDNURMLDRCQUE0QixDQUFDSyxhQUFhLEdBQUdGLE1BQU07SUFFbkQsS0FBSyxNQUFNRyxRQUFRLElBQUlOLDRCQUE0QixDQUFDTyxTQUFTLEVBQUU7TUFDM0RELFFBQVEsQ0FBQ0UsZ0JBQWdCLENBQUNMLE1BQU0sRUFBRUMsU0FBUyxDQUFDO0lBQ2hEO0VBQ0o7RUFFVUssV0FBV0EsQ0FBQSxFQUFHO0lBQ3BCLEtBQUssQ0FBQyxDQUFDO0lBRVBULDRCQUE0QixDQUFDTyxTQUFTLENBQUNHLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDckQ7RUFFQSxJQUFXUCxNQUFNQSxDQUFBLEVBQTZCO0lBQzFDLE9BQU9ILDRCQUE0QixDQUFDSyxhQUFhO0VBQ3JEO0FBR0o7QUFBQ00sT0FBQSxDQUFBQyxPQUFBLEdBQUFaLDRCQUFBO0FBQUEsSUFBQWEsZ0JBQUEsQ0FBQUQsT0FBQSxFQXhCNkJaLDRCQUE0QjtBQUFBLElBQUFhLGdCQUFBLENBQUFELE9BQUEsRUFBNUJaLDRCQUE0QixlQUVLLEVBQUUiLCJpZ25vcmVMaXN0IjpbXX0=