Playlists: Fix kiosk mode not activating when starting a playlist (#84262)

* Playlists: Fix Kiosk mode not activating when starting a playlist

* oops remove debugger
This commit is contained in:
Josh Hunt
2024-03-12 11:48:18 +00:00
committed by GitHub
parent a883df633e
commit 4fc4a1c4a8
2 changed files with 15 additions and 3 deletions

View File

@ -3,7 +3,7 @@ import classNames from 'classnames';
import React, { PropsWithChildren, useEffect } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { locationService } from '@grafana/runtime';
import { locationSearchToObject, locationService } from '@grafana/runtime';
import { useStyles2, LinkButton, useTheme2 } from '@grafana/ui';
import config from 'app/core/config';
import { useGrafana } from 'app/core/context/GrafanaContext';
@ -67,6 +67,12 @@ export function AppChrome({ children }: Props) {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [chrome, url]);
// Sync updates from kiosk mode query string back into app chrome
useEffect(() => {
const queryParams = locationSearchToObject(search);
chrome.setKioskModeFromUrl(queryParams.kiosk);
}, [chrome, search]);
// Chromeless routes are without topNav, mega menu, search & command palette
// We check chromeless twice here instead of having a separate path so {children}
// doesn't get re-mounted when chromeless goes from true to false.

View File

@ -191,13 +191,19 @@ export class AppChromeService {
}
public setKioskModeFromUrl(kiosk: UrlQueryValue) {
let newKioskMode: KioskMode | undefined;
switch (kiosk) {
case 'tv':
this.update({ kioskMode: KioskMode.TV });
newKioskMode = KioskMode.TV;
break;
case '1':
case true:
this.update({ kioskMode: KioskMode.Full });
newKioskMode = KioskMode.Full;
}
if (newKioskMode && newKioskMode !== this.state.getValue().kioskMode) {
this.update({ kioskMode: newKioskMode });
}
}