From 4984ed85e54f442998a335db70618d6184fa397e Mon Sep 17 00:00:00 2001 From: yiminghe Date: Thu, 4 Aug 2016 19:53:55 +0800 Subject: 2.x :boom: --- src/module/Header.jsx | 204 -------------------------------------------------- 1 file changed, 204 deletions(-) delete mode 100644 src/module/Header.jsx (limited to 'src/module/Header.jsx') diff --git a/src/module/Header.jsx b/src/module/Header.jsx deleted file mode 100644 index a926e98..0000000 --- a/src/module/Header.jsx +++ /dev/null @@ -1,204 +0,0 @@ -import React, { PropTypes } from 'react'; -import createSelection from '../util/selection'; - -const Header = React.createClass({ - propTypes: { - formatter: PropTypes.object, - prefixCls: PropTypes.string, - gregorianCalendarLocale: PropTypes.object, - locale: PropTypes.object, - disabledDate: PropTypes.func, - placeholder: PropTypes.string, - value: PropTypes.object, - hourOptions: PropTypes.array, - minuteOptions: PropTypes.array, - secondOptions: PropTypes.array, - disabledHours: PropTypes.func, - disabledMinutes: PropTypes.func, - disabledSeconds: PropTypes.func, - onChange: PropTypes.func, - onClear: PropTypes.func, - onEsc: PropTypes.func, - allowEmpty: PropTypes.bool, - currentSelectPanel: PropTypes.string, - }, - - getInitialState() { - const value = this.props.value; - return { - str: value && this.props.formatter.format(value) || '', - invalid: false, - }; - }, - - componentDidMount() { - this.timer = setTimeout(this.selectRange, 0); - }, - - componentWillReceiveProps(nextProps) { - const value = nextProps.value; - this.setState({ - str: value && nextProps.formatter.format(value) || '', - invalid: false, - }); - }, - - componentDidUpdate() { - this.timer = setTimeout(this.selectRange, 0); - }, - - componentWillUnmount() { - clearTimeout(this.timer); - }, - - onInputChange(event) { - const str = event.target.value; - this.setState({ - str, - }); - let value = null; - const { formatter, gregorianCalendarLocale, hourOptions, minuteOptions, secondOptions, disabledHours, disabledMinutes, disabledSeconds, onChange, allowEmpty } = this.props; - - if (str) { - const originalValue = this.props.value; - try { - value = formatter.parse(str, { - locale: gregorianCalendarLocale, - obeyCount: true, - }); - } catch (ex) { - this.setState({ - invalid: true, - }); - return; - } - - if (value) { - // if time value not allowed, response warning. - if ( - hourOptions.indexOf(value.getHourOfDay()) < 0 || - minuteOptions.indexOf(value.getMinutes()) < 0 || - secondOptions.indexOf(value.getSeconds()) < 0 - ) { - this.setState({ - invalid: true, - }); - return; - } - - // if time value is disabled, response warning. - const disabledHourOptions = disabledHours(); - const disabledMinuteOptions = disabledMinutes(value.getHourOfDay()); - const disabledSecondOptions = disabledSeconds(value.getHourOfDay(), value.getMinutes()); - if ( - (disabledHourOptions && disabledHourOptions.indexOf(value.getHourOfDay()) >= 0) || - (disabledMinuteOptions && disabledMinuteOptions.indexOf(value.getMinutes()) >= 0) || - (disabledSecondOptions && disabledSecondOptions.indexOf(value.getSeconds()) >= 0) - ) { - this.setState({ - invalid: true, - }); - return; - } - - if (originalValue && value) { - if ( - originalValue.getHourOfDay() !== value.getHourOfDay() || - originalValue.getMinutes() !== value.getMinutes() || - originalValue.getSeconds() !== value.getSeconds() - ) { - // keep other fields for rc-calendar - const changedValue = originalValue.clone(); - changedValue.setHourOfDay(value.getHourOfDay()); - changedValue.setMinutes(value.getMinutes()); - changedValue.setSeconds(value.getSeconds()); - onChange(changedValue); - } - } else if (originalValue !== value) { - onChange(value); - } - } else { - this.setState({ - invalid: true, - }); - return; - } - } else if (allowEmpty) { - onChange(null); - } else { - this.setState({ - invalid: true, - }); - return; - } - - this.setState({ - invalid: false, - }); - }, - - onKeyDown(e) { - if (e.keyCode === 27) { - this.props.onEsc(); - } - }, - - onClear() { - this.setState({ str: '' }); - this.props.onClear(); - }, - - getClearButton() { - const { locale, prefixCls, allowEmpty } = this.props; - if (!allowEmpty) { - return null; - } - return ; - }, - - getInput() { - const { prefixCls, placeholder } = this.props; - const { invalid, str } = this.state; - const invalidClass = invalid ? `${prefixCls}-input-invalid` : ''; - return (); - }, - - selectRange() { - this.refs.input.select(); - if (this.props.currentSelectPanel && this.refs.input.value) { - let selectionRangeStart = 0; - let selectionRangeEnd = 0; - if (this.props.currentSelectPanel === 'hour') { - selectionRangeStart = 0; - selectionRangeEnd = this.refs.input.value.indexOf(':'); - } else if (this.props.currentSelectPanel === 'minute') { - selectionRangeStart = this.refs.input.value.indexOf(':') + 1; - selectionRangeEnd = this.refs.input.value.lastIndexOf(':'); - } else if (this.props.currentSelectPanel === 'second') { - selectionRangeStart = this.refs.input.value.lastIndexOf(':') + 1; - selectionRangeEnd = this.refs.input.value.length; - } - if (selectionRangeEnd - selectionRangeStart === 2) { - createSelection(this.refs.input, selectionRangeStart, selectionRangeEnd); - } - } - }, - - render() { - const { prefixCls } = this.props; - return ( -
- {this.getInput()} - {this.getClearButton()} -
- ); - }, -}); - -export default Header; -- cgit v1.2.3