Command Palette: Maintain page state when changing theme (#59787) (#59841)

* use same function as the change theme keybindings

* rename toggleTheme service to just theme

(cherry picked from commit 46adfb596d)
This commit is contained in:
Ashley Harrison
2022-12-12 14:53:29 +00:00
committed by GitHub
parent 2b220ad0cb
commit d3703273c0
3 changed files with 11 additions and 12 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ import { AppChromeService } from '../components/AppChrome/AppChromeService';
import { HelpModal } from '../components/help/HelpModal';
import { contextSrv } from '../core';
import { toggleTheme } from './toggleTheme';
import { toggleTheme } from './theme';
import { withFocusedPanel } from './withFocusedPanelId';
export class KeybindingSrv {
@@ -7,11 +7,10 @@ import { contextSrv } from '../core';
import { PreferencesService } from './PreferencesService';
export async function toggleTheme(runtimeOnly: boolean) {
const currentTheme = config.theme2;
export async function changeTheme(mode: 'dark' | 'light', runtimeOnly?: boolean) {
const newTheme = createTheme({
colors: {
mode: currentTheme.isDark ? 'light' : 'dark',
mode: mode,
},
});
@@ -55,3 +54,8 @@ export async function toggleTheme(runtimeOnly: boolean) {
theme: newTheme.colors.mode,
});
}
export async function toggleTheme(runtimeOnly: boolean) {
const currentTheme = config.theme2;
changeTheme(currentTheme.isDark ? 'light' : 'dark', runtimeOnly);
}
@@ -3,6 +3,7 @@ import { flatMapDeep } from 'lodash';
import { NavModelItem } from '@grafana/data';
import { locationService } from '@grafana/runtime';
import { changeTheme } from 'app/core/services/theme';
import { alertingCommandPaletteStaticActions } from './alerting.static.actions';
@@ -40,10 +41,7 @@ export default (navBarTree: NavModelItem[]) => {
name: 'Dark',
keywords: 'dark theme',
section: '',
perform: () => {
locationService.push({ search: '?theme=dark' });
location.reload();
},
perform: () => changeTheme('dark'),
parent: 'preferences/theme',
},
{
@@ -51,10 +49,7 @@ export default (navBarTree: NavModelItem[]) => {
name: 'Light',
keywords: 'light theme',
section: '',
perform: () => {
locationService.push({ search: '?theme=light' });
location.reload();
},
perform: () => changeTheme('light'),
parent: 'preferences/theme',
},
];