UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

99 lines (95 loc) 3.13 kB
import React from 'react'; import createReactClass from 'create-react-class'; import noop from 'lodash/noop'; import MonthTable from './MonthTable'; function goYear(direction) { var next = this.state.value.clone(); next.add(direction, 'year'); this.setAndChangeValue(next); } var MonthPanel = createReactClass({ displayName: "MonthPanel", getDefaultProps: function getDefaultProps() { return { onChange: noop, onSelect: noop }; }, getInitialState: function getInitialState() { var props = this.props; // bind methods this.nextYear = goYear.bind(this, 1); this.previousYear = goYear.bind(this, -1); this.prefixCls = "".concat(props.rootPrefixCls, "-month-panel"); return { value: props.value || props.defaultValue }; }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { this.setState({ value: nextProps.value }); } }, setAndChangeValue: function setAndChangeValue(value) { this.setValue(value); this.props.onChange(value); }, setAndSelectValue: function setAndSelectValue(value) { this.setValue(value); this.props.onSelect(value); }, setValue: function setValue(value) { if (!('value' in this.props)) { this.setState({ value: value }); } }, render: function render() { var props = this.props; var value = this.state.value; var cellRender = props.cellRender; var contentRender = props.contentRender; var locale = props.locale; var year = value.year(); var prefixCls = this.prefixCls; return /*#__PURE__*/React.createElement("div", { className: prefixCls, style: props.style }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-header") }, /*#__PURE__*/React.createElement("a", { className: "".concat(prefixCls, "-prev-year-btn"), role: "button", onClick: this.previousYear, title: locale.previousYear }), /*#__PURE__*/React.createElement("a", { className: "".concat(prefixCls, "-year-select"), role: "button", onClick: props.onYearPanelShow, title: locale.yearSelect }, /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-year-select-content") }, year), /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-year-select-arrow") }, "x")), /*#__PURE__*/React.createElement("a", { className: "".concat(prefixCls, "-next-year-btn"), role: "button", onClick: this.nextYear, title: locale.nextYear })), /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-body") }, /*#__PURE__*/React.createElement(MonthTable, { disabledDate: props.disabledDate, onSelect: this.setAndSelectValue, locale: locale, value: value, cellRender: cellRender, contentRender: contentRender, prefixCls: prefixCls })))); } }); export default MonthPanel; //# sourceMappingURL=MonthPanel.js.map