import { useCallback } from 'react'; import { FieldNamePickerConfigSettings, StandardEditorProps, StandardEditorsRegistryItem, StringFieldConfigSettings, } from '@grafana/data'; import { TextDimensionConfig, TextDimensionMode } from '@grafana/schema'; import { Button, InlineField, InlineFieldRow, RadioButtonGroup } from '@grafana/ui'; import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker'; import { StringValueEditor } from 'app/core/components/OptionsUI/string'; import { TextDimensionOptions } from '../types'; const textOptions = [ { label: 'Fixed', value: TextDimensionMode.Fixed, description: 'Fixed value' }, { label: 'Field', value: TextDimensionMode.Field, description: 'Display field value' }, // { label: 'Template', value: TextDimensionMode.Template, description: 'use template text' }, ]; const dummyFieldSettings = { settings: {}, } as StandardEditorsRegistryItem; const dummyStringSettings = { settings: {}, } as StandardEditorsRegistryItem; type Props = StandardEditorProps; export const TextDimensionEditor = ({ value, context, onChange }: Props) => { const labelWidth = 9; const onModeChange = useCallback( (mode: TextDimensionMode) => { onChange({ ...value, mode, }); }, [onChange, value] ); const onFieldChange = useCallback( (field?: string) => { onChange({ ...value, field, }); }, [onChange, value] ); const onFixedChange = useCallback( (fixed = '') => { onChange({ ...value, fixed, }); }, [onChange, value] ); const onClearFixed = () => { onFixedChange(''); }; const mode = value?.mode ?? TextDimensionMode.Fixed; return ( <> {mode !== TextDimensionMode.Fixed && ( )} {mode === TextDimensionMode.Fixed && ( } /> )} {mode === TextDimensionMode.Template && ( )} ); };