DefaultTemplateQueryComponent.tsx 954 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import React, { PureComponent } from 'react';
  2. interface Props {
  3. query: string;
  4. onChange: (c: string) => void;
  5. }
  6. export default class DefaultTemplateQueryComponent extends PureComponent<Props, any> {
  7. constructor(props) {
  8. super(props);
  9. this.state = { value: props.query };
  10. this.handleChange = this.handleChange.bind(this);
  11. this.handleBlur = this.handleBlur.bind(this);
  12. }
  13. handleChange(event) {
  14. this.setState({ value: event.target.value });
  15. }
  16. handleBlur(event) {
  17. this.props.onChange(event.target.value);
  18. }
  19. render() {
  20. return (
  21. <div className="gf-form">
  22. <span className="gf-form-label width-7">Query</span>
  23. <input
  24. type="text"
  25. className="gf-form-input"
  26. value={this.state.value}
  27. onChange={this.handleChange}
  28. onBlur={this.handleBlur}
  29. placeholder="metric name or tags query"
  30. required
  31. />
  32. </div>
  33. );
  34. }
  35. }