import { useEffect, useState } from 'react'; import { SelectableValue } from '@grafana/data'; import { EditorField } from '@grafana/plugin-ui'; import { Select } from '@grafana/ui'; import CloudMonitoringDatasource from '../datasource'; import { SLOQuery } from '../types/query'; export interface Props { refId: string; onChange: (query: SLOQuery) => void; query: SLOQuery; templateVariableOptions: Array>; datasource: CloudMonitoringDatasource; } export const Service = ({ refId, query, templateVariableOptions, onChange, datasource }: Props) => { const [services, setServices] = useState>>([]); const { projectName } = query; useEffect(() => { if (!projectName) { return; } datasource.getSLOServices(projectName).then((services: Array>) => { setServices([ { label: 'Template Variables', options: templateVariableOptions, }, ...services, ]); }); }, [datasource, projectName, templateVariableOptions]); return (