| | |
| | | UNSAFE_componentWillMount () { |
| | | const { value, options } = this.props |
| | | |
| | | let val = '' |
| | | let unit = '' |
| | | |
| | | if (value !== undefined) { |
| | | val = value |
| | | } |
| | | |
| | | unit = options[0] |
| | | let val = value || '' |
| | | let unit = options[0] |
| | | |
| | | if (val) { |
| | | if (val.indexOf('px') > -1) { |
| | |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | | return !is(fromJS(this.state), fromJS(nextState)) |
| | | } |
| | | |
| | | UNSAFE_componentWillReceiveProps(nextProps) { |
| | | if (nextProps.value === '' && this.state.value !== '') { |
| | | this.setState({value: ''}) |
| | | } else if (nextProps.value && nextProps.value !== `${this.state.value}${this.state.unit}`) { |
| | | let val = nextProps.value |
| | | let unit = this.state.unit |
| | | |
| | | if (val) { |
| | | if (val.indexOf('px') > -1) { |
| | | unit = 'px' |
| | | } else if (val.indexOf('%') > -1) { |
| | | unit = '%' |
| | | } else if (val.indexOf('vw') > -1) { |
| | | unit = 'vw' |
| | | } else if (val.indexOf('vh') > -1) { |
| | | unit = 'vh' |
| | | } |
| | | } |
| | | |
| | | let _val = parseFloat(val) |
| | | |
| | | if (isNaN(_val)) { |
| | | _val = '' |
| | | } |
| | | this.setState({value: _val, unit}) |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | this.setState({ |
| | | value: _val, |
| | | }, () => { |
| | | this.props.onChange(_val !== '' ? `${_val}${unit}` : '') |
| | | }) |
| | | |
| | | this.props.onChange(_val ? `${_val}${unit}` : '') |
| | | } |
| | | |
| | | changeUnit = (val) => { |
| | | const { value } = this.state |
| | | |
| | | this.setState({unit: val}) |
| | | this.props.onChange(value ? `${value}${val}` : '') |
| | | this.setState({unit: val}, () => { |
| | | this.props.onChange(value !== '' ? `${value}${val}` : '') |
| | | }) |
| | | } |
| | | |
| | | render () { |