matrix-react-sdk
Version:
SDK for matrix.org using React
43 lines (40 loc) • 4.72 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _SettingController = _interopRequireDefault(require("./SettingController"));
var _SettingsStore = _interopRequireDefault(require("../SettingsStore"));
/*
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.
*/
/**
* Enforces that a boolean setting cannot be enabled if the corresponding
* UI feature is disabled. If the UI feature is enabled, the setting value
* is unchanged.
*
* Settings using this controller are assumed to return `false` when disabled.
*/
class UIFeatureController extends _SettingController.default {
constructor(uiFeatureName, forcedValue = false) {
super();
this.uiFeatureName = uiFeatureName;
this.forcedValue = forcedValue;
}
getValueOverride(level, roomId, calculatedValue, calculatedAtLevel) {
if (this.settingDisabled) {
// per the docs: we force a disabled state when the feature isn't active
return this.forcedValue;
}
return null; // no override
}
get settingDisabled() {
return !_SettingsStore.default.getValue(this.uiFeatureName);
}
}
exports.default = UIFeatureController;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU2V0dGluZ0NvbnRyb2xsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9TZXR0aW5nc1N0b3JlIiwiVUlGZWF0dXJlQ29udHJvbGxlciIsIlNldHRpbmdDb250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJ1aUZlYXR1cmVOYW1lIiwiZm9yY2VkVmFsdWUiLCJnZXRWYWx1ZU92ZXJyaWRlIiwibGV2ZWwiLCJyb29tSWQiLCJjYWxjdWxhdGVkVmFsdWUiLCJjYWxjdWxhdGVkQXRMZXZlbCIsInNldHRpbmdEaXNhYmxlZCIsIlNldHRpbmdzU3RvcmUiLCJnZXRWYWx1ZSIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NldHRpbmdzL2NvbnRyb2xsZXJzL1VJRmVhdHVyZUNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFNldHRpbmdDb250cm9sbGVyIGZyb20gXCIuL1NldHRpbmdDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBTZXR0aW5nTGV2ZWwgfSBmcm9tIFwiLi4vU2V0dGluZ0xldmVsXCI7XG5pbXBvcnQgU2V0dGluZ3NTdG9yZSBmcm9tIFwiLi4vU2V0dGluZ3NTdG9yZVwiO1xuXG4vKipcbiAqIEVuZm9yY2VzIHRoYXQgYSBib29sZWFuIHNldHRpbmcgY2Fubm90IGJlIGVuYWJsZWQgaWYgdGhlIGNvcnJlc3BvbmRpbmdcbiAqIFVJIGZlYXR1cmUgaXMgZGlzYWJsZWQuIElmIHRoZSBVSSBmZWF0dXJlIGlzIGVuYWJsZWQsIHRoZSBzZXR0aW5nIHZhbHVlXG4gKiBpcyB1bmNoYW5nZWQuXG4gKlxuICogU2V0dGluZ3MgdXNpbmcgdGhpcyBjb250cm9sbGVyIGFyZSBhc3N1bWVkIHRvIHJldHVybiBgZmFsc2VgIHdoZW4gZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVJRmVhdHVyZUNvbnRyb2xsZXIgZXh0ZW5kcyBTZXR0aW5nQ29udHJvbGxlciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHVpRmVhdHVyZU5hbWU6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSBmb3JjZWRWYWx1ZSA9IGZhbHNlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZU92ZXJyaWRlKFxuICAgICAgICBsZXZlbDogU2V0dGluZ0xldmVsLFxuICAgICAgICByb29tSWQ6IHN0cmluZyxcbiAgICAgICAgY2FsY3VsYXRlZFZhbHVlOiBhbnksXG4gICAgICAgIGNhbGN1bGF0ZWRBdExldmVsOiBTZXR0aW5nTGV2ZWwgfCBudWxsLFxuICAgICk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdEaXNhYmxlZCkge1xuICAgICAgICAgICAgLy8gcGVyIHRoZSBkb2NzOiB3ZSBmb3JjZSBhIGRpc2FibGVkIHN0YXRlIHdoZW4gdGhlIGZlYXR1cmUgaXNuJ3QgYWN0aXZlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JjZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDsgLy8gbm8gb3ZlcnJpZGVcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNldHRpbmdEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFTZXR0aW5nc1N0b3JlLmdldFZhbHVlKHRoaXMudWlGZWF0dXJlTmFtZSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFBQUEsa0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGNBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsTUFBTUUsbUJBQW1CLFNBQVNDLDBCQUFpQixDQUFDO0VBQ3hEQyxXQUFXQSxDQUNOQyxhQUFxQixFQUNyQkMsV0FBVyxHQUFHLEtBQUssRUFDN0I7SUFDRSxLQUFLLENBQUMsQ0FBQztJQUFDLEtBSEFELGFBQXFCLEdBQXJCQSxhQUFxQjtJQUFBLEtBQ3JCQyxXQUFXLEdBQVhBLFdBQVc7RUFHdkI7RUFFT0MsZ0JBQWdCQSxDQUNuQkMsS0FBbUIsRUFDbkJDLE1BQWMsRUFDZEMsZUFBb0IsRUFDcEJDLGlCQUFzQyxFQUNuQztJQUNILElBQUksSUFBSSxDQUFDQyxlQUFlLEVBQUU7TUFDdEI7TUFDQSxPQUFPLElBQUksQ0FBQ04sV0FBVztJQUMzQjtJQUNBLE9BQU8sSUFBSSxDQUFDLENBQUM7RUFDakI7RUFFQSxJQUFXTSxlQUFlQSxDQUFBLEVBQVk7SUFDbEMsT0FBTyxDQUFDQyxzQkFBYSxDQUFDQyxRQUFRLENBQUMsSUFBSSxDQUFDVCxhQUFhLENBQUM7RUFDdEQ7QUFDSjtBQUFDVSxPQUFBLENBQUFDLE9BQUEsR0FBQWQsbUJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=