LokiQueryEditor.tsx 1022 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Libraries
  2. import React, { PureComponent } from 'react';
  3. // Types
  4. import { QueryEditorProps } from '@grafana/ui/src/types';
  5. import { LokiDatasource } from '../datasource';
  6. import { LokiQuery } from '../types';
  7. import { LokiQueryField } from './LokiQueryField';
  8. type Props = QueryEditorProps<LokiDatasource, LokiQuery>;
  9. interface State {
  10. query: LokiQuery;
  11. }
  12. export class LokiQueryEditor extends PureComponent<Props> {
  13. state: State = {
  14. query: this.props.query
  15. };
  16. onRunQuery = () => {
  17. const { query } = this.state;
  18. this.props.onChange(query);
  19. this.props.onRunQuery();
  20. };
  21. onFieldChange = (query: LokiQuery, override?) => {
  22. this.setState({
  23. query: query
  24. });
  25. };
  26. render() {
  27. const { query } = this.state;
  28. const { datasource } = this.props;
  29. return (
  30. <div>
  31. <LokiQueryField datasource={datasource} initialQuery={query} onQueryChange={this.onFieldChange} onPressEnter={this.onRunQuery} />
  32. </div>
  33. );
  34. }
  35. }
  36. export default LokiQueryEditor;