From 322be6e17a13f378fd094ebc2906100772173156 Mon Sep 17 00:00:00 2001 From: Alex P Date: Wed, 13 Jun 2018 10:52:33 -0700 Subject: [PATCH] Replace textarea in DE query editor with code mirror editor --- .../data_explorer/components/QueryEditor.tsx | 119 ++++++++++++------ ui/src/style/components/query-editor.scss | 42 ++----- 2 files changed, 93 insertions(+), 68 deletions(-) diff --git a/ui/src/data_explorer/components/QueryEditor.tsx b/ui/src/data_explorer/components/QueryEditor.tsx index 0f64bdec8..67a3a9340 100644 --- a/ui/src/data_explorer/components/QueryEditor.tsx +++ b/ui/src/data_explorer/components/QueryEditor.tsx @@ -1,10 +1,14 @@ -import React, {PureComponent, KeyboardEvent} from 'react' +import React, {PureComponent} from 'react' +import {Controlled as ReactCodeMirror, IInstance} from 'react-codemirror2' +import {EditorChange} from 'codemirror' import Dropdown from 'src/shared/components/Dropdown' +import classnames from 'classnames' import {QUERY_TEMPLATES, QueryTemplate} from 'src/data_explorer/constants' import QueryStatus from 'src/shared/components/QueryStatus' import {ErrorHandling} from 'src/shared/decorators/errors' import {QueryConfig} from 'src/types' +import 'src/external/codemirror' interface Props { query: string @@ -14,19 +18,17 @@ interface Props { interface State { value: string + focused: boolean } @ErrorHandling class QueryEditor extends PureComponent { - private editor: React.RefObject - constructor(props) { super(props) this.state = { value: this.props.query, + focused: false, } - - this.editor = React.createRef() } public componentWillReceiveProps(nextProps: Props) { @@ -41,21 +43,34 @@ class QueryEditor extends PureComponent { } = this.props const {value} = this.state + const options = { + tabIndex: 1, + mode: 'influxQL', + readonly: false, + lineNumbers: false, + autoRefresh: true, + theme: 'influxql', + completeSingle: false, + lineWrapping: true, + } + return (
-