diff options
Diffstat (limited to 'web/src/js/components/common/CodeEditor.jsx')
-rw-r--r-- | web/src/js/components/common/CodeEditor.jsx | 41 |
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> + ) + } +} |