matrix-react-sdk
Version:
SDK for matrix.org using React
70 lines (64 loc) • 7.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2017 Travis Ralston
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
/**
* Represents a controller for individual settings to alter the reading behaviour
* based upon environmental conditions, or to react to changes and therefore update
* the working environment.
*
* This is not intended to replace the functionality of a SettingsHandler, it is only
* intended to handle environmental factors for specific settings.
*/
class SettingController {
/**
* Gets the overridden value for the setting, if any. This must return null if the
* value is not to be overridden, otherwise it must return the new value.
* @param {string} level The level at which the value was requested at.
* @param {String} roomId The room ID, may be null.
* @param {*} calculatedValue The value that the handlers think the setting should be,
* may be null.
* @param {SettingLevel} calculatedAtLevel The level for which the calculated value was
* calculated at. May be null.
* @return {*} The value that should be used, or null if no override is applicable.
*/
getValueOverride(level, roomId, calculatedValue, calculatedAtLevel) {
return null; // no override
}
/**
* Called before the setting value has been changed, can abort the change.
* @param {string} level The level at which the setting has been modified.
* @param {String} roomId The room ID, may be null.
* @param {*} newValue The new value for the setting, may be null.
* @return {boolean} Whether the settings change should be accepted.
*/
async beforeChange(level, roomId, newValue) {
return true;
}
/**
* Called when the setting value has been changed.
* @param {string} level The level at which the setting has been modified.
* @param {String} roomId The room ID, may be null.
* @param {*} newValue The new value for the setting, may be null.
*/
onChange(level, roomId, newValue) {
// do nothing by default
}
/**
* Gets whether the setting has been disabled due to this controller.
* Can also return a string with the reason the setting is disabled.
*/
get settingDisabled() {
return false;
}
}
exports.default = SettingController;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXR0aW5nQ29udHJvbGxlciIsImdldFZhbHVlT3ZlcnJpZGUiLCJsZXZlbCIsInJvb21JZCIsImNhbGN1bGF0ZWRWYWx1ZSIsImNhbGN1bGF0ZWRBdExldmVsIiwiYmVmb3JlQ2hhbmdlIiwibmV3VmFsdWUiLCJvbkNoYW5nZSIsInNldHRpbmdEaXNhYmxlZCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NldHRpbmdzL2NvbnRyb2xsZXJzL1NldHRpbmdDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNyBUcmF2aXMgUmFsc3RvblxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBTZXR0aW5nTGV2ZWwgfSBmcm9tIFwiLi4vU2V0dGluZ0xldmVsXCI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNvbnRyb2xsZXIgZm9yIGluZGl2aWR1YWwgc2V0dGluZ3MgdG8gYWx0ZXIgdGhlIHJlYWRpbmcgYmVoYXZpb3VyXG4gKiBiYXNlZCB1cG9uIGVudmlyb25tZW50YWwgY29uZGl0aW9ucywgb3IgdG8gcmVhY3QgdG8gY2hhbmdlcyBhbmQgdGhlcmVmb3JlIHVwZGF0ZVxuICogdGhlIHdvcmtpbmcgZW52aXJvbm1lbnQuXG4gKlxuICogVGhpcyBpcyBub3QgaW50ZW5kZWQgdG8gcmVwbGFjZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhIFNldHRpbmdzSGFuZGxlciwgaXQgaXMgb25seVxuICogaW50ZW5kZWQgdG8gaGFuZGxlIGVudmlyb25tZW50YWwgZmFjdG9ycyBmb3Igc3BlY2lmaWMgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIFNldHRpbmdDb250cm9sbGVyIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBvdmVycmlkZGVuIHZhbHVlIGZvciB0aGUgc2V0dGluZywgaWYgYW55LiBUaGlzIG11c3QgcmV0dXJuIG51bGwgaWYgdGhlXG4gICAgICogdmFsdWUgaXMgbm90IHRvIGJlIG92ZXJyaWRkZW4sIG90aGVyd2lzZSBpdCBtdXN0IHJldHVybiB0aGUgbmV3IHZhbHVlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZXZlbCBUaGUgbGV2ZWwgYXQgd2hpY2ggdGhlIHZhbHVlIHdhcyByZXF1ZXN0ZWQgYXQuXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHJvb21JZCBUaGUgcm9vbSBJRCwgbWF5IGJlIG51bGwuXG4gICAgICogQHBhcmFtIHsqfSBjYWxjdWxhdGVkVmFsdWUgVGhlIHZhbHVlIHRoYXQgdGhlIGhhbmRsZXJzIHRoaW5rIHRoZSBzZXR0aW5nIHNob3VsZCBiZSxcbiAgICAgKiBtYXkgYmUgbnVsbC5cbiAgICAgKiBAcGFyYW0ge1NldHRpbmdMZXZlbH0gY2FsY3VsYXRlZEF0TGV2ZWwgVGhlIGxldmVsIGZvciB3aGljaCB0aGUgY2FsY3VsYXRlZCB2YWx1ZSB3YXNcbiAgICAgKiBjYWxjdWxhdGVkIGF0LiBNYXkgYmUgbnVsbC5cbiAgICAgKiBAcmV0dXJuIHsqfSBUaGUgdmFsdWUgdGhhdCBzaG91bGQgYmUgdXNlZCwgb3IgbnVsbCBpZiBubyBvdmVycmlkZSBpcyBhcHBsaWNhYmxlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRWYWx1ZU92ZXJyaWRlKFxuICAgICAgICBsZXZlbDogU2V0dGluZ0xldmVsLFxuICAgICAgICByb29tSWQ6IHN0cmluZyB8IG51bGwsXG4gICAgICAgIGNhbGN1bGF0ZWRWYWx1ZTogYW55LFxuICAgICAgICBjYWxjdWxhdGVkQXRMZXZlbDogU2V0dGluZ0xldmVsIHwgbnVsbCxcbiAgICApOiBhbnkge1xuICAgICAgICByZXR1cm4gbnVsbDsgLy8gbm8gb3ZlcnJpZGVcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgYmVmb3JlIHRoZSBzZXR0aW5nIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQsIGNhbiBhYm9ydCB0aGUgY2hhbmdlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZXZlbCBUaGUgbGV2ZWwgYXQgd2hpY2ggdGhlIHNldHRpbmcgaGFzIGJlZW4gbW9kaWZpZWQuXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHJvb21JZCBUaGUgcm9vbSBJRCwgbWF5IGJlIG51bGwuXG4gICAgICogQHBhcmFtIHsqfSBuZXdWYWx1ZSBUaGUgbmV3IHZhbHVlIGZvciB0aGUgc2V0dGluZywgbWF5IGJlIG51bGwuXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGUgc2V0dGluZ3MgY2hhbmdlIHNob3VsZCBiZSBhY2NlcHRlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgYmVmb3JlQ2hhbmdlKGxldmVsOiBTZXR0aW5nTGV2ZWwsIHJvb21JZDogc3RyaW5nIHwgbnVsbCwgbmV3VmFsdWU6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiB0aGUgc2V0dGluZyB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZXZlbCBUaGUgbGV2ZWwgYXQgd2hpY2ggdGhlIHNldHRpbmcgaGFzIGJlZW4gbW9kaWZpZWQuXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHJvb21JZCBUaGUgcm9vbSBJRCwgbWF5IGJlIG51bGwuXG4gICAgICogQHBhcmFtIHsqfSBuZXdWYWx1ZSBUaGUgbmV3IHZhbHVlIGZvciB0aGUgc2V0dGluZywgbWF5IGJlIG51bGwuXG4gICAgICovXG4gICAgcHVibGljIG9uQ2hhbmdlKGxldmVsOiBTZXR0aW5nTGV2ZWwsIHJvb21JZDogc3RyaW5nIHwgbnVsbCwgbmV3VmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBkbyBub3RoaW5nIGJ5IGRlZmF1bHRcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIHNldHRpbmcgaGFzIGJlZW4gZGlzYWJsZWQgZHVlIHRvIHRoaXMgY29udHJvbGxlci5cbiAgICAgKiBDYW4gYWxzbyByZXR1cm4gYSBzdHJpbmcgd2l0aCB0aGUgcmVhc29uIHRoZSBzZXR0aW5nIGlzIGRpc2FibGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2V0dGluZ0Rpc2FibGVkKCk6IGJvb2xlYW4gfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZSxNQUFlQSxpQkFBaUIsQ0FBQztFQUM1QztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ1dDLGdCQUFnQkEsQ0FDbkJDLEtBQW1CLEVBQ25CQyxNQUFxQixFQUNyQkMsZUFBb0IsRUFDcEJDLGlCQUFzQyxFQUNuQztJQUNILE9BQU8sSUFBSSxDQUFDLENBQUM7RUFDakI7O0VBRUE7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDSSxNQUFhQyxZQUFZQSxDQUFDSixLQUFtQixFQUFFQyxNQUFxQixFQUFFSSxRQUFhLEVBQW9CO0lBQ25HLE9BQU8sSUFBSTtFQUNmOztFQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNXQyxRQUFRQSxDQUFDTixLQUFtQixFQUFFQyxNQUFxQixFQUFFSSxRQUFhLEVBQVE7SUFDN0U7RUFBQTs7RUFHSjtBQUNKO0FBQ0E7QUFDQTtFQUNJLElBQVdFLGVBQWVBLENBQUEsRUFBcUI7SUFDM0MsT0FBTyxLQUFLO0VBQ2hCO0FBQ0o7QUFBQ0MsT0FBQSxDQUFBQyxPQUFBLEdBQUFYLGlCQUFBIiwiaWdub3JlTGlzdCI6W119