message: Input: simplified component.
diff: @@ -3,25 +3,12 @@ import React, { Component } from 'react';
  import PropTypes from 'prop-types';
  import getClassName from '../../helpers/getClassName';
  import classnames from '../../lib/classnames';
  -import requestAnimationFrame from '../../lib/requestAnimationFrame';
  import {platform, ANDROID} from '../../lib/platform';
  const osname = platform();
  const baseClassName = getClassName('Input');
  export default class Input extends Component {
  - constructor (props) {
  - super(props);
  -
  - if (typeof props.value !== 'undefined') {
  - this.isControlledOutside = true;
  - } else {
  - this.state = {
  - value: props.defaultValue || ''
  - };
  - }
  - }
  -
  static propTypes = {
  type: PropTypes.oneOf([
  'text', 'password',
  @@ -42,7 +29,6 @@ export default class Input extends Component {
  static defaultProps = {
  type: 'text',
  alignment: 'left',
  - defaultValue: '',
  status: 'default'
  };
  @@ -50,33 +36,8 @@ export default class Input extends Component {
  isWebView: PropTypes.bool
  };
  - onChange = (e) => {
  - if (!this.isControlledOutside) {
  - this.setState({ value: e.target.value });
  - }
  - if (this.props.onChange) {
  - this.props.onChange(e);
  - }
  - };
  -
  - get value () { return this.isControlledOutside ? this.props.value : this.state.value; }
  -
  - getRef = (element) => {
  - this.props.getRef && this.props.getRef(element);
  - this.element = element;
  - };
  -
  - componentDidUpdate (prevProps) {
  - if (prevProps.value && this.props.value === '') {
  - // Fix iOS extra indent on removing content
  - requestAnimationFrame(() => {
  - this.element.value = '';
  - });
  - }
  - }
  -
  render () {
  - const { onChange, defaultValue, alignment, placeholder, value, status, getRef, className, getRootRef, ...restProps } = this.props;
  + const { alignment, placeholder, status, getRef, className, getRootRef, ...restProps } = this.props;
  const modifiers = {
  'Input--left': alignment === 'left',
  @@ -90,12 +51,10 @@ export default class Input extends Component {
  return (
  <div className={classnames(baseClassName, modifiers, className)} ref={getRootRef}>
  <input
  + {...restProps}
  className="Input__el"
  - ref={this.getRef}
  - value={this.value}
  - onChange={this.onChange}
  + ref={getRef}
  placeholder={customPlaceolder ? null : this.props.placeholder}
  - {...restProps}
  />
  {osname === ANDROID && <div className="Input-underline" />}
  {customPlaceolder && !this.value && <div className="Input__placeholder">{this.props.placeholder}</div>}
  