mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
29 lines
775 B
TypeScript
29 lines
775 B
TypeScript
import React, { FC, useState } from 'react';
|
|
|
|
import { InlineField, Input } from '@grafana/ui';
|
|
|
|
const LABEL_WIDTH = 20;
|
|
|
|
interface VariableTextFieldProps {
|
|
onBlur: (value: string) => void;
|
|
placeholder: string;
|
|
value: string;
|
|
label: string;
|
|
tooltip?: string;
|
|
}
|
|
|
|
export const VariableTextField: FC<VariableTextFieldProps> = ({ label, onBlur, placeholder, value, tooltip }) => {
|
|
const [localValue, setLocalValue] = useState(value);
|
|
return (
|
|
<InlineField 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>
|
|
);
|
|
};
|