import PropTypes from 'prop-types'; import React from 'react'; import Textarea from 'react-textarea-autosize'; export default class TextControl extends React.Component { static propTypes = { onChange: PropTypes.func.isRequired, forID: PropTypes.string, value: PropTypes.node, classNameWrapper: PropTypes.string.isRequired, setActiveStyle: PropTypes.func.isRequired, setInactiveStyle: PropTypes.func.isRequired, }; /** * Always update to ensure `react-textarea-autosize` properly calculates * height. Certain situations, such as this widget being nested in a list * item that gets rearranged, can leave the textarea in a minimal height * state. Always updating should generally be low cost, but this should be * optimized in the future. */ shouldComponentUpdate(nextProps) { return true; } render() { const { forID, value, onChange, classNameWrapper, setActiveStyle, setInactiveStyle, } = this.props; return (