diff --git a/ui/frontend/ConfigMenu.tsx b/ui/frontend/ConfigMenu.tsx index 6fc1a59d..7dd6572a 100644 --- a/ui/frontend/ConfigMenu.tsx +++ b/ui/frontend/ConfigMenu.tsx @@ -16,6 +16,7 @@ import { ProcessAssembly, Theme, } from './types'; +import { showThemeSelector } from './selectors'; const MONACO_THEMES = [ 'vs', 'vs-dark', 'vscode-dark-plus', @@ -33,6 +34,8 @@ const ConfigMenu: React.FC = () => { const demangleAssembly = useAppSelector((state) => state.configuration.demangleAssembly); const processAssembly = useAppSelector((state) => state.configuration.processAssembly); + const showTheme = useAppSelector(showThemeSelector); + const dispatch = useAppDispatch(); const changeAceTheme = useCallback((t: string) => dispatch(config.changeAceTheme(t)), [dispatch]); const changeMonacoTheme = useCallback((t: string) => dispatch(config.changeMonacoTheme(t)), [dispatch]); @@ -101,11 +104,13 @@ const ConfigMenu: React.FC = () => { - - - - - + {showTheme && ( + + + + { /* */ } + + )} { state.forced = true; state.showGemThreshold = ENABLED; + state.showThemeThreshold = ENABLED; }, forceDisableAll: (state) => { state.forced = true; state.showGemThreshold = DISABLED; + state.showThemeThreshold = DISABLED; }, }, extraReducers: (builder) => { @@ -42,11 +47,15 @@ const slice = createSlice({ return; } - const { showGemThreshold } = action.payload; + const { showGemThreshold, showThemeThreshold } = action.payload; if (showGemThreshold) { state.showGemThreshold = showGemThreshold; } + + if (showThemeThreshold) { + state.showThemeThreshold = showThemeThreshold; + } }); }, }); diff --git a/ui/frontend/selectors/index.ts b/ui/frontend/selectors/index.ts index 2ce71828..cd010716 100644 --- a/ui/frontend/selectors/index.ts +++ b/ui/frontend/selectors/index.ts @@ -445,11 +445,13 @@ const websocket = (state: State) => state.websocket; const clientFeatureFlagThreshold = createSelector(client, (c) => c.featureFlagThreshold); const showGemThreshold = createSelector(featureFlags, ff => ff.showGemThreshold); +const showThemeThreshold = createSelector(featureFlags, ff => ff.showThemeThreshold); const createFeatureFlagSelector = (ff: (state: State) => number) => createSelector(clientFeatureFlagThreshold, ff, (c, ff) => c <= ff); export const showGemSelector = createFeatureFlagSelector(showGemThreshold); +export const showThemeSelector = createFeatureFlagSelector(showThemeThreshold); export const executeViaWebsocketSelector = createSelector(websocket, (ws) => ws.connected);