import { useState } from 'react'; import { SelectableValue, UrlQueryMap, urlUtil } from '@grafana/data'; import { config, locationService, reportInteraction } from '@grafana/runtime'; import { Box, Button, Checkbox, Field, FieldSet, Modal, RadioButtonGroup, Stack } from '@grafana/ui'; import { Playlist, PlaylistMode } from './types'; export interface Props { playlist: Playlist; onDismiss: () => void; } export const StartModal = ({ playlist, onDismiss }: Props) => { const [mode, setMode] = useState(false); const [autoFit, setAutofit] = useState(false); const [displayTimePicker, setDisplayTimePicker] = useState(true); const [displayVariables, setDisplayVariables] = useState(true); const [displayLinks, setDisplayLinks] = useState(true); const modes: Array> = [ { label: 'Normal', value: false }, { label: 'Kiosk', value: true }, ]; const onStart = () => { const params: UrlQueryMap = {}; if (mode) { params.kiosk = mode; } if (autoFit) { params.autofitpanels = true; } if (!displayTimePicker) { params['_dash.hideTimePicker'] = true; } if (!displayVariables) { params['_dash.hideVariables'] = true; } if (!displayLinks) { params['_dash.hideLinks'] = true; } locationService.push(urlUtil.renderUrl(`/playlists/play/${playlist.uid}`, params)); reportInteraction('grafana_kiosk_mode', { action: 'start_playlist', mode: mode, }); }; return (
setAutofit(e.currentTarget.checked)} /> {config.featureToggles.dashboardScene && ( setDisplayTimePicker(e.currentTarget.checked)} /> setDisplayVariables(e.currentTarget.checked)} /> setDisplayLinks(e.currentTarget.checked)} /> )}
); };