grafana/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/QueryHeader.tsx
Adam Simpson b2644de6c8
AzureMonitor: add feature toggle azureMonitorExperimentalUI for migrating to experimental UI (#48658)
* feat: add feature toggle azureMonitorExperimentalUI

Add QueryHeader which adds an experimental header to AzureMonitor. This work is documented in #44432.
2022-05-04 13:54:09 +00:00

46 lines
1.3 KiB
TypeScript

import React, { useCallback } from 'react';
import { SelectableValue } from '@grafana/data';
import { EditorHeader, InlineSelect } from '@grafana/experimental';
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>
);
};