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> +        ) +    } +} | 
