UNPKG

matrix-react-sdk

Version:
47 lines (46 loc) 2.31 kB
import { WatchManager } from "../WatchManager"; /** * Represents the base class for all level handlers. This class performs no logic * and should be overridden. */ export default abstract class SettingsHandler { readonly watchers?: WatchManager; /** * Gets the value for a particular setting at this level for a particular room. * If no room is applicable, the roomId may be null. The roomId may not be * applicable to this level and may be ignored by the handler. * @param {string} settingName The name of the setting. * @param {String} roomId The room ID to read from, may be null. * @returns {*} The setting value, or null if not found. */ abstract getValue(settingName: string, roomId: string | null): any; /** * Sets the value for a particular setting at this level for a particular room. * If no room is applicable, the roomId may be null. The roomId may not be * applicable to this level and may be ignored by the handler. Setting a value * to null will cause the level to remove the value. The current user should be * able to set the value prior to calling this. * @param {string} settingName The name of the setting to change. * @param {String} roomId The room ID to set the value in, may be null. * @param {*} newValue The new value for the setting, may be null. * @returns {Promise} Resolves when the setting has been saved. */ abstract setValue(settingName: string, roomId: string | null, newValue: any): Promise<void>; /** * Determines if the current user is able to set the value of the given setting * in the given room at this level. * @param {string} settingName The name of the setting to check. * @param {String} roomId The room ID to check in, may be null * @returns {boolean} True if the setting can be set by the user, false otherwise. */ abstract canSetValue(settingName: string, roomId: string | null): boolean; /** * Determines if this level is supported on this device. * @returns {boolean} True if this level is supported on the current device. */ abstract isSupported(): boolean; /** * Resets the handler, clearing any caches or other stored data. Called on user logout. */ reset(): void; }