diff --git a/eslint-suppressions.json b/eslint-suppressions.json index 227edc2fd71..2612b2c0400 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -3383,11 +3383,6 @@ "count": 1 } }, - "public/app/features/transformers/editors/GroupByTransformerEditor.tsx": { - "@typescript-eslint/consistent-type-assertions": { - "count": 1 - } - }, "public/app/features/transformers/editors/GroupToNestedTableTransformerEditor.tsx": { "no-restricted-syntax": { "count": 1 diff --git a/public/app/features/transformers/editors/GroupByTransformerEditor.tsx b/public/app/features/transformers/editors/GroupByTransformerEditor.tsx index ebd2a55661d..b84753a1b20 100644 --- a/public/app/features/transformers/editors/GroupByTransformerEditor.tsx +++ b/public/app/features/transformers/editors/GroupByTransformerEditor.tsx @@ -4,7 +4,6 @@ import { useCallback } from 'react'; import { DataTransformerID, ReducerID, - SelectableValue, standardTransformers, TransformerRegistryItem, TransformerUIProps, @@ -13,12 +12,12 @@ import { } from '@grafana/data'; import { GroupByFieldOptions, GroupByOperationID, GroupByTransformerOptions } from '@grafana/data/internal'; import { t } from '@grafana/i18n'; -import { useTheme2, Select, StatsPicker, InlineField, Stack, Alert } from '@grafana/ui'; +import { useTheme2, StatsPicker, InlineField, Stack, Alert, Combobox, ComboboxOption } from '@grafana/ui'; import { getTransformationContent } from '../docs/getTransformationContent'; import darkImage from '../images/dark/groupBy.svg'; import lightImage from '../images/light/groupBy.svg'; -import { useAllFieldNamesFromDataFrames } from '../utils'; +import { DataFieldsErrorWrapper } from '../utils'; interface FieldProps { fieldName: string; @@ -26,9 +25,11 @@ interface FieldProps { onConfigChange: (config: GroupByFieldOptions) => void; } -const GroupByTransformerEditor = ({ input, options, onChange }: TransformerUIProps) => { - const fieldNames = useAllFieldNamesFromDataFrames(input, true); +interface GroupByTransformerEditorProps extends TransformerUIProps { + fieldNames: string[]; +} +export const GroupByTransformerEditorBase = ({ options, onChange, fieldNames }: GroupByTransformerEditorProps) => { const onConfigChange = useCallback( (fieldName: string) => (config: GroupByFieldOptions) => { onChange({ @@ -84,16 +85,20 @@ const GroupByTransformerEditor = ({ input, options, onChange }: TransformerUIPro ); }; +const GroupByTransformerEditor = DataFieldsErrorWrapper(GroupByTransformerEditorBase, { + withBaseFieldNames: true, +}); + const GroupByFieldConfiguration = ({ fieldName, config, onConfigChange }: FieldProps) => { const theme = useTheme2(); const styles = getStyles(theme); const onChange = useCallback( - (value: SelectableValue) => { + (option: ComboboxOption | null) => { onConfigChange({ aggregations: config?.aggregations ?? [], - operation: value?.value ?? null, + operation: option?.value ?? null, }); }, [config, onConfigChange] @@ -114,7 +119,7 @@ const GroupByFieldConfiguration = ({ fieldName, config, onConfigChange }: FieldP
-