aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/common/CodeEditor.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/js/components/common/CodeEditor.jsx')
-rw-r--r--web/src/js/components/common/CodeEditor.jsx41
1 files changed, 41 insertions, 0 deletions
diff --git a/web/src/js/components/common/CodeEditor.jsx b/web/src/js/components/common/CodeEditor.jsx
new file mode 100644
index 00000000..d7e6aabb
--- /dev/null
+++ b/web/src/js/components/common/CodeEditor.jsx
@@ -0,0 +1,41 @@
+import React, { Component, PropTypes } from 'react'
+import { render } from 'react-dom';
+import brace from 'brace';
+import AceEditor from 'react-ace';
+import Button from './Button'
+
+
+import 'brace/mode/javascript';
+import 'brace/mode/json';
+import 'brace/theme/monokai';
+
+
+
+
+export default class CodeEditor extends Component{
+ constructor( props ) {
+ super(props)
+ this.state = {value: this.props.value}
+ }
+
+ onChange(newValue) {
+ this.setState({value: newValue})
+ }
+
+ render() {
+ return (
+ <div onKeyDown={e => e.stopPropagation()}>
+ <AceEditor
+ onChange={e => this.onChange(e)}
+ mode="javascript"
+ theme="monokai"
+ value={this.state.value}
+ width="100%"
+ name="codeEditor"
+ editorProps={{$blockScrolling: Infinity}}
+ />
+ <Button onClick={(e) => this.props.onSave(this.state.value)} text="Update"/>
+ </div>
+ )
+ }
+}