rmc-calendar
Version:
React Mobile Calendar Component(web and react-native)
96 lines (72 loc) • 3.51 kB
JavaScript
;
exports.__esModule = true;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _rmcDatePicker = require('rmc-date-picker');
var _rmcDatePicker2 = _interopRequireDefault(_rmcDatePicker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var TimePicker = function (_React$PureComponent) {
(0, _inherits3['default'])(TimePicker, _React$PureComponent);
function TimePicker() {
(0, _classCallCheck3['default'])(this, TimePicker);
var _this = (0, _possibleConstructorReturn3['default'])(this, _React$PureComponent.apply(this, arguments));
_this.onDateChange = function (date) {
var onValueChange = _this.props.onValueChange;
onValueChange && onValueChange(date);
};
return _this;
}
TimePicker.prototype.getMinTime = function getMinTime(date) {
var minDate = this.props.minDate;
if (!date || date.getFullYear() > minDate.getFullYear() || date.getMonth() > minDate.getMonth() || date.getDate() > minDate.getDate()) {
return TimePicker.defaultProps.minDate;
}
return minDate;
};
TimePicker.prototype.getMaxTime = function getMaxTime(date) {
var maxDate = this.props.maxDate;
if (!date || date.getFullYear() < maxDate.getFullYear() || date.getMonth() < maxDate.getMonth() || date.getDate() < maxDate.getDate()) {
return TimePicker.defaultProps.maxDate;
}
return maxDate;
};
TimePicker.prototype.render = function render() {
var _props = this.props,
locale = _props.locale,
title = _props.title,
value = _props.value,
defaultValue = _props.defaultValue,
prefixCls = _props.prefixCls,
pickerPrefixCls = _props.pickerPrefixCls,
clientHeight = _props.clientHeight;
var date = value || defaultValue || undefined;
var height = clientHeight && clientHeight * 3 / 8 - 52 || Number.POSITIVE_INFINITY;
return _react2['default'].createElement(
'div',
{ className: 'time-picker' },
_react2['default'].createElement(
'div',
{ className: 'title' },
title
),
_react2['default'].createElement(_rmcDatePicker2['default'], { prefixCls: prefixCls, pickerPrefixCls: pickerPrefixCls, style: {
height: height > 164 || height < 0 ? 164 : height,
overflow: 'hidden'
}, mode: 'time', date: date, locale: locale, minDate: this.getMinTime(date), maxDate: this.getMaxTime(date), onDateChange: this.onDateChange, use12Hours: true })
);
};
return TimePicker;
}(_react2['default'].PureComponent);
exports['default'] = TimePicker;
TimePicker.defaultProps = {
minDate: new Date(0, 0, 0, 0, 0),
maxDate: new Date(9999, 11, 31, 23, 59, 59),
defaultValue: new Date(2000, 1, 1, 8)
};
module.exports = exports['default'];