| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | import React, { Component } from 'react';import PropTypes from 'prop-types';import $ from 'jquery';export class SummerNote extends Component {  static propTypes = {    options: PropTypes.object,    onChange: PropTypes.func,    value: PropTypes.string,  };  static defaultProps = {    options: {},    onChange: () => {},    value: '',  };  componentDidMount() {    require('react-summernote');    require('react-summernote/dist/react-summernote.css');    require('bootstrap/dist/js/bootstrap');    $(this.element).summernote({      ...this.props.options,      callbacks: {        onChange: this.handleChange,      },    });    $(this.element).summernote('code', this.props.value);  }  componentDidUpdate(prevProps) {    if (this.props.value !== prevProps.value) {      $(this.element).summernote('code', this.props.value);    }  }  componentWillUnmount() {    $(this.element).summernote('destroy');  }  handleChange = (value) => {    this.props.onChange(value);  };  setRef = (node) => this.element = node;  render() {    return (      <div ref={this.setRef}></div>    );  }}export default SummerNote;
 |