grafana/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/QueryHeader.tsx
Scott Lepper de956fc3d8
Core code editor/builder components (#52421)
* migrate experimental to core grafana - update refs

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2022-07-20 12:50:08 -04:00

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>
);
};