UNPKG

rmc-date-picker

Version:

React Mobile DatePicker Component for web and react-native

125 lines (99 loc) 3.93 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: 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 _Popup = require('rmc-picker/lib/Popup'); var _Popup2 = _interopRequireDefault(_Popup); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var __assign = undefined && undefined.__assign || Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; /* tslint:disable: interface-name */ function noop() {} var PopupDatePicker = function (_React$Component) { (0, _inherits3["default"])(PopupDatePicker, _React$Component); function PopupDatePicker(props) { (0, _classCallCheck3["default"])(this, PopupDatePicker); var _this = (0, _possibleConstructorReturn3["default"])(this, _React$Component.call(this, props)); _this.onPickerChange = function (pickerDate) { _this.setState({ pickerDate: pickerDate }); if (_this.props.datePicker.props.onDateChange) { _this.props.datePicker.props.onDateChange(pickerDate); } }; _this.onOk = function () { var onChange = _this.props.onChange; if (onChange) { onChange(_this.datePicker.getDate()); } }; _this.saveRef = function (datePicker) { _this.datePicker = datePicker; }; _this.fireVisibleChange = function (visible) { if (_this.state.visible !== visible) { if (!('visible' in _this.props)) { _this.setVisibleState(visible); } var onVisibleChange = _this.props.onVisibleChange; if (onVisibleChange) { onVisibleChange(visible); } } }; _this.state = { pickerDate: null, visible: _this.props.visible || false }; return _this; } PopupDatePicker.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if ('visible' in nextProps) { this.setVisibleState(nextProps.visible); } }; PopupDatePicker.prototype.setVisibleState = function setVisibleState(visible) { this.setState({ visible: visible }); if (!visible) { this.setState({ pickerDate: null }); } }; PopupDatePicker.prototype.render = function render() { var dataPicker = _react2["default"].cloneElement(this.props.datePicker, { date: this.state.pickerDate || this.props.date, onDateChange: this.onPickerChange, ref: this.saveRef }); return _react2["default"].createElement(_Popup2["default"], __assign({}, this.props, { onVisibleChange: this.fireVisibleChange, onOk: this.onOk, content: dataPicker, visible: this.state.visible })); }; return PopupDatePicker; }(_react2["default"].Component); exports["default"] = PopupDatePicker; PopupDatePicker.defaultProps = { onVisibleChange: noop, prefixCls: 'rmc-picker-popup', onChange: noop, onDismiss: noop, onPickerChange: noop }; module.exports = exports['default'];