mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
* Select: Don't portal by default * Select: Portal all the Selects * Fix indendentation in this comment * Select: Remove @example docs until formatting is correct * Docs: Add some documentation for the Select changes * Update docs/sources/whatsnew/whats-new-in-v8-1.md Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update docs/sources/whatsnew/whats-new-in-v8-1.md Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update packages/grafana-ui/src/components/Select/types.ts Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Update public/app/core/components/TransformersUI/prepareTimeSeries/PrepareTimeSeriesEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> * Docs: Variants instead of varients * Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com> Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import React, { FC, useMemo } from 'react';
|
|
import { SelectableValue } from '@grafana/data';
|
|
import { Select } from '@grafana/ui';
|
|
import { MetricQuery } from '../types';
|
|
import { getAlignmentPickerData } from '../functions';
|
|
import { SELECT_WIDTH } from '../constants';
|
|
|
|
export interface Props {
|
|
onChange: (query: MetricQuery) => void;
|
|
query: MetricQuery;
|
|
templateVariableOptions: Array<SelectableValue<string>>;
|
|
}
|
|
|
|
export const AlignmentFunction: FC<Props> = ({ query, templateVariableOptions, onChange }) => {
|
|
const { valueType, metricKind, perSeriesAligner: psa, preprocessor } = query;
|
|
const { perSeriesAligner, alignOptions } = useMemo(
|
|
() => getAlignmentPickerData(valueType, metricKind, psa, preprocessor),
|
|
[valueType, metricKind, psa, preprocessor]
|
|
);
|
|
|
|
return (
|
|
<Select
|
|
menuShouldPortal
|
|
width={SELECT_WIDTH}
|
|
onChange={({ value }) => onChange({ ...query, perSeriesAligner: value! })}
|
|
value={[...alignOptions, ...templateVariableOptions].find((s) => s.value === perSeriesAligner)}
|
|
options={[
|
|
{
|
|
label: 'Template Variables',
|
|
options: templateVariableOptions,
|
|
},
|
|
{
|
|
label: 'Alignment options',
|
|
expanded: true,
|
|
options: alignOptions,
|
|
},
|
|
]}
|
|
placeholder="Select Alignment"
|
|
></Select>
|
|
);
|
|
};
|