grafana/public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableTextField.tsx
Yaelle Chaudy bcf8320e07
Cloudwatch: Add template variable query function for listing log groups (#50100)
* cloud-datasources mob! :shipit:

* cloud-datasources mob! :shipit:

lastFile:public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.tsx

* mob next [ci-skip] [ci skip] [skip ci]

lastFile:public/app/plugins/datasource/cloudwatch/variables.ts

* cloud-datasources mob! 👶

lastFile:public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.test.tsx

* cloud-datasources mob! 👶

lastFile:public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.test.tsx

* mob next [ci-skip] [ci skip] [skip ci]

lastFile:public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryEditor.test.tsx

* cloud-datasources mob! :shipit:

lastFile:public/app/plugins/datasource/cloudwatch/variables.test.ts

* cloud-datasources mob! 

* prettier md

Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
Co-authored-by: Andres <andres.martinez@grafana.com>
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
Co-authored-by: Adam Simpson <adam@adamsimpson.net>
2022-06-03 09:26:57 +02:00

37 lines
877 B
TypeScript

import React, { FC, useState } from 'react';
import { InlineField, Input, PopoverContent } from '@grafana/ui';
const LABEL_WIDTH = 20;
interface VariableTextFieldProps {
onBlur: (value: string) => void;
value: string;
label: string;
placeholder?: string;
tooltip?: PopoverContent;
interactive?: boolean;
}
export const VariableTextField: FC<VariableTextFieldProps> = ({
interactive,
label,
onBlur,
placeholder,
value,
tooltip,
}) => {
const [localValue, setLocalValue] = useState(value);
return (
<InlineField interactive={interactive} label={label} labelWidth={LABEL_WIDTH} tooltip={tooltip} grow>
<Input
aria-label={label}
placeholder={placeholder}
value={localValue}
onChange={(e) => setLocalValue(e.currentTarget.value)}
onBlur={() => onBlur(localValue)}
/>
</InlineField>
);
};