dodekeract/manta-config-engine-app

View on GitHub
source/web/components/presets-edit.jsx

Summary

Maintainability
A
3 hrs
Test Coverage
var store = require('../store');
var actions = require('../actions');

var ReactMarkdown = require('react-markdown');

var PresetsEdit = React.createClass({
    getInitialState: store.getState,
    componentDidMount: function () {
        store.addChangeListener(this._onChange);
    },
    componentWillUnmount: function () {
        store.removeChangeListener(this._onChange);
    },
    render: function () {
        var preset = JSON.stringify(this.state.preset, null, 4);
        return (
            <div className="container">
                <br/>
                <div className="row">
                    <div className="col-sm-6">
                        <input type="text" value={this.state.preset.title} onChange={this.changeTitle} className="form-control"/>
                    </div>
                    <div className="col-sm-6">
                        <h1 style={{marginTop: 0}}>{this.state.preset.title}</h1>
                    </div>
                </div>
                <br/>
                <div className="row">
                    <div className="col-sm-6">
                        <textarea className="form-control monospace" value={this.state.preset.description} onChange={this.changeDescription} rows="20"/>
                    </div>
                    <div className="col-sm-6">
                        <ReactMarkdown source={this.state.preset.description}/>
                    </div>
                </div>
            </div>
        );
    },
    changeDescription: function (e) {
        actions.preset.changeDescription(e.target.value);
    },
    changeTitle: function (e) {
        actions.preset.changeTitle(e.target.value);
    },
    _onChange: function () {
        this.setState(store.getState());
    }
});

module.exports = PresetsEdit;