import React, { useState } from 'react'; import { SelectableValue, TimeZone } from '@grafana/data'; import { Select, TagsInput, Input, Field, CollapsableSection, RadioButtonGroup } from '@grafana/ui'; import { selectors } from '@grafana/e2e-selectors'; import { FolderPicker } from 'app/core/components/Select/FolderPicker'; import { DashboardModel } from '../../state/DashboardModel'; import { DeleteDashboardButton } from '../DeleteDashboard/DeleteDashboardButton'; import { TimePickerSettings } from './TimePickerSettings'; interface Props { dashboard: DashboardModel; } const GRAPH_TOOLTIP_OPTIONS = [ { value: 0, label: 'Default' }, { value: 1, label: 'Shared crosshair' }, { value: 2, label: 'Shared Tooltip' }, ]; export const GeneralSettings: React.FC = ({ dashboard }) => { const [renderCounter, setRenderCounter] = useState(0); const onFolderChange = (folder: { id: number; title: string }) => { dashboard.meta.folderId = folder.id; dashboard.meta.folderTitle = folder.title; dashboard.meta.hasUnsavedFolderChange = true; }; const onBlur = (event: React.FocusEvent) => { dashboard[event.currentTarget.name as 'title' | 'description'] = event.currentTarget.value; }; const onTooltipChange = (graphTooltip: SelectableValue) => { dashboard.graphTooltip = graphTooltip.value; setRenderCounter(renderCounter + 1); }; const onRefreshIntervalChange = (intervals: string[]) => { dashboard.timepicker.refresh_intervals = intervals.filter((i) => i.trim() !== ''); }; const onNowDelayChange = (nowDelay: string) => { dashboard.timepicker.nowDelay = nowDelay; }; const onHideTimePickerChange = (hide: boolean) => { dashboard.timepicker.hidden = hide; setRenderCounter(renderCounter + 1); }; const onTimeZoneChange = (timeZone: TimeZone) => { dashboard.timezone = timeZone; setRenderCounter(renderCounter + 1); }; const onTagsChange = (tags: string[]) => { dashboard.tags = tags; setRenderCounter(renderCounter + 1); }; const onEditableChange = (value: boolean) => { dashboard.editable = value; setRenderCounter(renderCounter + 1); }; const editableOptions = [ { label: 'Editable', value: true }, { label: 'Read-only', value: false }, ]; return (

General