Show all labs even if incompatible, with appropriate tooltip explaining requirements (#10369)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
This commit is contained in:
parent
209b65243a
commit
e3930fb8b0
16 changed files with 156 additions and 120 deletions
|
@ -325,7 +325,9 @@ export default class SettingsStore {
|
|||
|
||||
/**
|
||||
* Determines if a setting is enabled.
|
||||
* If a setting is disabled then it should be hidden from the user.
|
||||
* If a setting is disabled then it should normally be hidden from the user to de-clutter the user interface.
|
||||
* This rule is intentionally ignored for labs flags to unveil what features are available with
|
||||
* the right server support.
|
||||
* @param {string} settingName The setting to look up.
|
||||
* @return {boolean} True if the setting is enabled.
|
||||
*/
|
||||
|
@ -334,6 +336,18 @@ export default class SettingsStore {
|
|||
return !SETTINGS[settingName].controller?.settingDisabled ?? true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the reason a setting is disabled if one is assigned.
|
||||
* If a setting is not disabled, or no reason is given by the `SettingController`,
|
||||
* this will return undefined.
|
||||
* @param {string} settingName The setting to look up.
|
||||
* @return {string} The reason the setting is disabled.
|
||||
*/
|
||||
public static disabledMessage(settingName: string): string | undefined {
|
||||
const disabled = SETTINGS[settingName].controller?.settingDisabled;
|
||||
return typeof disabled === "string" ? disabled : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the value of a setting. The room ID is optional if the setting is not to
|
||||
* be applied to any particular room, otherwise it should be supplied.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue