import React from 'react'; import PropTypes from 'prop-types'; import { UnControlled as CodeMirror } from 'react-codemirror2'; require('codemirror/addon/hint/show-hint'); require('codemirror/addon/edit/matchbrackets'); require('codemirror/addon/edit/closebrackets'); require('codemirror/mode/htmlmixed/htmlmixed'); require('../../util/codemirror/autorefresh.ext'); require('jquery-ui/ui/widgets/resizable'); export default class CustomHeaderEditor extends React.Component { constructor(props) { super(props); } render() { // get initial value from inputElem const value = this.props.inputElem.value; return ( { // resizable with jquery.ui $(editor.getWrapperElement()).resizable({ resize: function() { editor.setSize($(this).width(), $(this).height()); } }); }} onChange={(editor, data, value) => { this.props.inputElem.value = value; }} /> ); } } CustomHeaderEditor.propTypes = { inputElem: PropTypes.object.isRequired, };