rsuite
Version:
A suite of react components
118 lines (90 loc) • 3.82 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _utils = require("../utils");
var _set_year = _interopRequireDefault(require("date-fns/set_year"));
var _set_month = _interopRequireDefault(require("date-fns/set_month"));
var _composeFunctions = _interopRequireDefault(require("../utils/composeFunctions"));
var MonthDropdownItem =
/*#__PURE__*/
function (_React$PureComponent) {
(0, _inheritsLoose2.default)(MonthDropdownItem, _React$PureComponent);
function MonthDropdownItem() {
var _this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;
_this.handleClick = function (event) {
var _this$props = _this.props,
onSelect = _this$props.onSelect,
month = _this$props.month,
year = _this$props.year,
date = _this$props.date,
disabled = _this$props.disabled;
if (disabled) {
return;
}
if (year && month && date) {
var nextMonth = (0, _composeFunctions.default)(function (d) {
return (0, _set_year.default)(d, year);
}, function (d) {
return (0, _set_month.default)(d, month - 1);
})(date);
onSelect && onSelect(nextMonth, event);
}
};
return _this;
}
var _proto = MonthDropdownItem.prototype;
_proto.render = function render() {
var _classNames;
var _this$props2 = this.props,
className = _this$props2.className,
classPrefix = _this$props2.classPrefix,
month = _this$props2.month,
active = _this$props2.active,
disabled = _this$props2.disabled,
rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["className", "classPrefix", "month", "active", "disabled"]);
var addPrefix = (0, _utils.prefix)(classPrefix);
var unhandled = (0, _utils.getUnhandledProps)(MonthDropdownItem, rest);
var classes = (0, _classnames.default)(classPrefix, className, (_classNames = {}, _classNames[addPrefix('active')] = active, _classNames.disabled = disabled, _classNames));
return React.createElement("div", (0, _extends2.default)({}, unhandled, {
className: classes,
onClick: this.handleClick,
key: month,
role: "button",
tabIndex: "-1"
}), React.createElement("span", {
className: addPrefix('content')
}, month));
};
return MonthDropdownItem;
}(React.PureComponent);
MonthDropdownItem.propTypes = {
date: _propTypes.default.instanceOf(Date),
month: _propTypes.default.number,
year: _propTypes.default.number,
onSelect: _propTypes.default.func,
className: _propTypes.default.string,
classPrefix: _propTypes.default.string,
active: _propTypes.default.bool,
disabled: _propTypes.default.bool
};
MonthDropdownItem.defaultProps = {
month: 0
};
var enhance = (0, _utils.defaultProps)({
classPrefix: 'calendar-month-dropdown-cell'
});
var _default = enhance(MonthDropdownItem);
exports.default = _default;
module.exports = exports.default;