|
|
|
@ -1,13 +1,12 @@ |
|
|
|
|
import { SelectableValue } from '@grafana/data'; |
|
|
|
|
import { Alert, InlineField, Input, Select } from '@grafana/ui'; |
|
|
|
|
import React, { ChangeEvent, useCallback, useEffect, useMemo, useState } from 'react'; |
|
|
|
|
import React, { ChangeEvent, useCallback, useEffect, useState } from 'react'; |
|
|
|
|
import { AzureMonitorQuery, AzureQueryType } from '../../types'; |
|
|
|
|
import LogsQueryEditor from '../LogsQueryEditor'; |
|
|
|
|
import DataSource from '../../datasource'; |
|
|
|
|
import useLastError from '../../utils/useLastError'; |
|
|
|
|
import { Space } from '../Space'; |
|
|
|
|
import { migrateStringQueriesToObjectQueries } from '../../grafanaTemplateVariableFns'; |
|
|
|
|
import { debounce } from 'lodash'; |
|
|
|
|
|
|
|
|
|
const AZURE_QUERY_VARIABLE_TYPE_OPTIONS = [ |
|
|
|
|
{ label: 'Grafana Query Function', value: AzureQueryType.GrafanaTemplateVariableFn }, |
|
|
|
@ -46,18 +45,18 @@ const GrafanaTemplateVariableFnInput = ({ |
|
|
|
|
}, |
|
|
|
|
[datasource, query, updateQuery] |
|
|
|
|
); |
|
|
|
|
const debouncedRunQuery = useMemo(() => debounce(onRunQuery, 500), [onRunQuery]); |
|
|
|
|
|
|
|
|
|
const onChange = (event: ChangeEvent<HTMLInputElement>) => { |
|
|
|
|
setInputVal(event.target.value); |
|
|
|
|
debouncedRunQuery(event.target.value); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<InlineField label="Grafana template variable function"> |
|
|
|
|
<Input |
|
|
|
|
placeholder={'type a grafana template variable function, ex: Subscriptions()'} |
|
|
|
|
value={inputVal} |
|
|
|
|
onChange={onChange} |
|
|
|
|
onBlur={() => onRunQuery(inputVal)} |
|
|
|
|
/> |
|
|
|
|
</InlineField> |
|
|
|
|
); |
|
|
|
|