constructor(properties) {
    super(properties);
    let inputValue;

    if (has(properties, 'valueLink')) {
      inputValue = properties.valueLink.value;
    } else if (has(properties, 'value')) {
      inputValue = properties.value;
    } else if (has(properties, 'defaultValue')) {
      inputValue = properties.defaultValue;
    }

    this.state = {
      height: 'auto',
      inputValue,
    };
    this.textareaProps = sanitizeChildProps(properties);
  }
TextInput component with great UX like autogrowing & handling states

Note on styling: Right now this component doen't allow to change style after
initialisation.

Note on resizing:
If you fill a textarea only with spaces and the cursor reaches the right end
it won't break the line. This leads to unexpected behaviour for the automatic
resizing.

This component was highly inspired by the great work from these guys
- Andrey Popp: https://github.com/andreypopp/react-textarea-autosize
- Eugene: https://gist.github.com/eugene1g/5dbaa7d35d0c7d5c2c56