mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
* migrate experimental to core grafana - update refs Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import React, { useCallback } from 'react';
|
|
|
|
import { SelectableValue } from '@grafana/data';
|
|
import { EditorHeader, InlineSelect } from '@grafana/ui';
|
|
|
|
import { AzureMonitorQuery, AzureQueryType } from '../types';
|
|
|
|
interface QueryTypeFieldProps {
|
|
query: AzureMonitorQuery;
|
|
onQueryChange: (newQuery: AzureMonitorQuery) => void;
|
|
}
|
|
|
|
export const QueryHeader: React.FC<QueryTypeFieldProps> = ({ query, onQueryChange }) => {
|
|
const queryTypes: Array<{ value: AzureQueryType; label: string }> = [
|
|
{ value: AzureQueryType.AzureMonitor, label: 'Metrics' },
|
|
{ value: AzureQueryType.LogAnalytics, label: 'Logs' },
|
|
{ value: AzureQueryType.AzureResourceGraph, label: 'Azure Resource Graph' },
|
|
];
|
|
|
|
const handleChange = useCallback(
|
|
(change: SelectableValue<AzureQueryType>) => {
|
|
change.value &&
|
|
onQueryChange({
|
|
...query,
|
|
queryType: change.value,
|
|
});
|
|
},
|
|
[onQueryChange, query]
|
|
);
|
|
|
|
return (
|
|
<span data-testid="azure-monitor-experimental-header">
|
|
<EditorHeader>
|
|
<InlineSelect
|
|
label="Service"
|
|
value={query.queryType}
|
|
placeholder="Service..."
|
|
allowCustomValue
|
|
options={queryTypes}
|
|
onChange={handleChange}
|
|
/>
|
|
</EditorHeader>
|
|
</span>
|
|
);
|
|
};
|