|
|
|
@ -35,14 +35,14 @@ export class AppChromeService { |
|
|
|
|
layout: PageLayoutType.Canvas, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
setMatchedRoute(route: RouteDescriptor) { |
|
|
|
|
public setMatchedRoute(route: RouteDescriptor) { |
|
|
|
|
if (this.currentRoute !== route) { |
|
|
|
|
this.currentRoute = route; |
|
|
|
|
this.routeChangeHandled = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
update(update: Partial<AppChromeState>) { |
|
|
|
|
public update(update: Partial<AppChromeState>) { |
|
|
|
|
const current = this.state.getValue(); |
|
|
|
|
const newState: AppChromeState = { |
|
|
|
|
...current, |
|
|
|
@ -68,7 +68,7 @@ export class AppChromeService { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ignoreStateUpdate(newState: AppChromeState, current: AppChromeState) { |
|
|
|
|
private ignoreStateUpdate(newState: AppChromeState, current: AppChromeState) { |
|
|
|
|
if (isShallowEqual(newState, current)) { |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
@ -88,22 +88,22 @@ export class AppChromeService { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
useState() { |
|
|
|
|
public useState() { |
|
|
|
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
|
|
|
return useObservable(this.state, this.state.getValue()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onToggleMegaMenu = () => { |
|
|
|
|
public onToggleMegaMenu = () => { |
|
|
|
|
const isOpen = !this.state.getValue().megaMenuOpen; |
|
|
|
|
reportInteraction('grafana_toggle_menu_clicked', { action: isOpen ? 'open' : 'close' }); |
|
|
|
|
this.update({ megaMenuOpen: isOpen }); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
setMegaMenu = (megaMenuOpen: boolean) => { |
|
|
|
|
public setMegaMenu = (megaMenuOpen: boolean) => { |
|
|
|
|
this.update({ megaMenuOpen }); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
onToggleSearchBar = () => { |
|
|
|
|
public onToggleSearchBar = () => { |
|
|
|
|
const { searchBarHidden, kioskMode } = this.state.getValue(); |
|
|
|
|
const newSearchBarHidden = !searchBarHidden; |
|
|
|
|
store.set(this.searchBarStorageKey, newSearchBarHidden); |
|
|
|
@ -115,18 +115,18 @@ export class AppChromeService { |
|
|
|
|
this.update({ searchBarHidden: newSearchBarHidden, kioskMode: null }); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
onToggleKioskMode = () => { |
|
|
|
|
public onToggleKioskMode = () => { |
|
|
|
|
const nextMode = this.getNextKioskMode(); |
|
|
|
|
this.update({ kioskMode: nextMode }); |
|
|
|
|
locationService.partial({ kiosk: this.getKioskUrlValue(nextMode) }); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
exitKioskMode() { |
|
|
|
|
public exitKioskMode() { |
|
|
|
|
this.update({ kioskMode: undefined }); |
|
|
|
|
locationService.partial({ kiosk: null }); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
setKioskModeFromUrl(kiosk: UrlQueryValue) { |
|
|
|
|
public setKioskModeFromUrl(kiosk: UrlQueryValue) { |
|
|
|
|
switch (kiosk) { |
|
|
|
|
case 'tv': |
|
|
|
|
this.update({ kioskMode: KioskMode.TV }); |
|
|
|
@ -137,7 +137,7 @@ export class AppChromeService { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getKioskUrlValue(mode: KioskMode | null) { |
|
|
|
|
public getKioskUrlValue(mode: KioskMode | null) { |
|
|
|
|
switch (mode) { |
|
|
|
|
case KioskMode.TV: |
|
|
|
|
return 'tv'; |
|
|
|
|