Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 2261a1b

Browse files
authored
Show all labs flags if developerMode enabled (#11746)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
1 parent 4605fd7 commit 2261a1b

File tree

5 files changed

+11
-10
lines changed

5 files changed

+11
-10
lines changed

src/IConfigOptions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export interface IConfigOptions {
9595
integrations_rest_url?: string;
9696
integrations_widgets_urls?: string[];
9797

98-
show_labs_settings?: boolean;
98+
show_labs_settings: boolean;
9999
features?: Record<string, boolean>; // <FeatureName, EnabledBool>
100100

101101
bug_report_endpoint_url?: string; // omission disables bug reporting

src/SdkConfig.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export const DEFAULTS: DeepReadonly<IConfigOptions> = {
3131
integrations_ui_url: "https://scalar.vector.im/",
3232
integrations_rest_url: "https://scalar.vector.im/api",
3333
uisi_autorageshake_app: "element-auto-uisi",
34+
show_labs_settings: false,
3435

3536
jitsi: {
3637
preferred_domain: "meet.element.io",

src/components/views/dialogs/UserSettingsDialog.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@ import TabbedView, { Tab } from "../../structures/TabbedView";
2121
import { _t, _td } from "../../../languageHandler";
2222
import GeneralUserSettingsTab from "../settings/tabs/user/GeneralUserSettingsTab";
2323
import SettingsStore, { CallbackFn } from "../../../settings/SettingsStore";
24-
import LabsUserSettingsTab from "../settings/tabs/user/LabsUserSettingsTab";
24+
import LabsUserSettingsTab, { showLabsFlags } from "../settings/tabs/user/LabsUserSettingsTab";
2525
import AppearanceUserSettingsTab from "../settings/tabs/user/AppearanceUserSettingsTab";
2626
import SecurityUserSettingsTab from "../settings/tabs/user/SecurityUserSettingsTab";
2727
import NotificationUserSettingsTab from "../settings/tabs/user/NotificationUserSettingsTab";
2828
import PreferencesUserSettingsTab from "../settings/tabs/user/PreferencesUserSettingsTab";
2929
import VoiceUserSettingsTab from "../settings/tabs/user/VoiceUserSettingsTab";
3030
import HelpUserSettingsTab from "../settings/tabs/user/HelpUserSettingsTab";
31-
import SdkConfig from "../../../SdkConfig";
3231
import MjolnirUserSettingsTab from "../settings/tabs/user/MjolnirUserSettingsTab";
3332
import { UIFeature } from "../../../settings/UIFeature";
3433
import BaseDialog from "./BaseDialog";
@@ -161,10 +160,7 @@ export default class UserSettingsDialog extends React.Component<IProps, IState>
161160
),
162161
);
163162
// Show the Labs tab if enabled or if there are any active betas
164-
if (
165-
SdkConfig.get("show_labs_settings") ||
166-
SettingsStore.getFeatureSettingNames().some((k) => SettingsStore.getBetaInfo(k))
167-
) {
163+
if (showLabsFlags() || SettingsStore.getFeatureSettingNames().some((k) => SettingsStore.getBetaInfo(k))) {
168164
tabs.push(
169165
new Tab(
170166
UserTab.Labs,

src/components/views/settings/tabs/user/KeyboardUserSettingsTab.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ limitations under the License.
1818
import React from "react";
1919

2020
import { ICategory, CATEGORIES, CategoryName, KeyBindingAction } from "../../../../../accessibility/KeyboardShortcuts";
21-
import SdkConfig from "../../../../../SdkConfig";
2221
import { _t } from "../../../../../languageHandler";
2322
import {
2423
getKeyboardShortcutDisplayName,
@@ -28,14 +27,15 @@ import { KeyboardShortcut } from "../../KeyboardShortcut";
2827
import SettingsTab from "../SettingsTab";
2928
import { SettingsSection } from "../../shared/SettingsSection";
3029
import SettingsSubsection from "../../shared/SettingsSubsection";
30+
import { showLabsFlags } from "./LabsUserSettingsTab";
3131

3232
interface IKeyboardShortcutRowProps {
3333
name: KeyBindingAction;
3434
}
3535

3636
// Filter out the labs section if labs aren't enabled.
3737
const visibleCategories = (Object.entries(CATEGORIES) as [CategoryName, ICategory][]).filter(
38-
([categoryName]) => categoryName !== CategoryName.LABS || SdkConfig.get("show_labs_settings"),
38+
([categoryName]) => categoryName !== CategoryName.LABS || showLabsFlags(),
3939
);
4040

4141
const KeyboardShortcutRow: React.FC<IKeyboardShortcutRowProps> = ({ name }) => {

src/components/views/settings/tabs/user/LabsUserSettingsTab.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ import { SettingsSection } from "../../shared/SettingsSection";
2929
import SettingsSubsection, { SettingsSubsectionText } from "../../shared/SettingsSubsection";
3030
import SettingsTab from "../SettingsTab";
3131

32+
export const showLabsFlags = (): boolean => {
33+
return SdkConfig.get("show_labs_settings") || SettingsStore.getValue("developerMode");
34+
};
35+
3236
export default class LabsUserSettingsTab extends React.Component<{}> {
3337
private readonly labs: string[];
3438
private readonly betas: string[];
@@ -48,7 +52,7 @@ export default class LabsUserSettingsTab extends React.Component<{}> {
4852
this.labs = labs;
4953
this.betas = betas;
5054

51-
if (!SdkConfig.get("show_labs_settings")) {
55+
if (!showLabsFlags()) {
5256
this.labs = [];
5357
}
5458
}

0 commit comments

Comments
 (0)