@seafile/seafile-calendar
Version:
React Calendar
93 lines (82 loc) • 2.97 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
import React from 'react';
import ReactDOM from 'react-dom';
import PropTypes from 'prop-types';
import toFragment from 'rc-util/es/Children/mapSelf';
import cx from 'classnames';
import TodayButton from '../calendar/TodayButton';
import OkButton from '../calendar/OkButton';
import TimePickerButton from '../calendar/TimePickerButton';
var CalendarFooter = function (_React$Component) {
_inherits(CalendarFooter, _React$Component);
function CalendarFooter() {
_classCallCheck(this, CalendarFooter);
return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
}
CalendarFooter.prototype.onSelect = function onSelect(value) {
this.props.onSelect(value);
};
CalendarFooter.prototype.getRootDOMNode = function getRootDOMNode() {
return ReactDOM.findDOMNode(this);
};
CalendarFooter.prototype.render = function render() {
var props = this.props;
var value = props.value,
prefixCls = props.prefixCls,
showOk = props.showOk,
timePicker = props.timePicker,
renderFooter = props.renderFooter,
mode = props.mode;
var footerEl = null;
var extraFooter = renderFooter && renderFooter(mode);
if (props.showToday || timePicker || extraFooter) {
var _cx;
var nowEl = void 0;
if (props.showToday) {
nowEl = React.createElement(TodayButton, _extends({}, props, { value: value }));
}
var okBtn = void 0;
if (showOk === true || showOk !== false && !!props.timePicker) {
okBtn = React.createElement(OkButton, props);
}
var timePickerBtn = void 0;
if (!!props.timePicker) {
timePickerBtn = React.createElement(TimePickerButton, props);
}
var footerBtn = void 0;
if (nowEl || timePickerBtn || okBtn || extraFooter) {
footerBtn = React.createElement(
'span',
{ className: prefixCls + '-footer-btn' },
extraFooter,
toFragment([nowEl, timePickerBtn, okBtn])
);
}
var cls = cx(prefixCls + '-footer', (_cx = {}, _cx[prefixCls + '-footer-show-ok'] = okBtn, _cx));
footerEl = React.createElement(
'div',
{ className: cls },
footerBtn
);
}
return footerEl;
};
return CalendarFooter;
}(React.Component);
CalendarFooter.propTypes = {
prefixCls: PropTypes.string,
showDateInput: PropTypes.bool,
disabledTime: PropTypes.any,
timePicker: PropTypes.element,
selectedValue: PropTypes.any,
showOk: PropTypes.bool,
onSelect: PropTypes.func,
value: PropTypes.object,
renderFooter: PropTypes.func,
defaultValue: PropTypes.object,
mode: PropTypes.string
};
export default CalendarFooter;