UNPKG

2.97 kBJavaScriptView Raw
1import _extends from 'babel-runtime/helpers/extends';
2import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
3import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
4import _inherits from 'babel-runtime/helpers/inherits';
5import React from 'react';
6import ReactDOM from 'react-dom';
7import PropTypes from 'prop-types';
8import toFragment from 'rc-util/es/Children/mapSelf';
9import cx from 'classnames';
10import TodayButton from '../calendar/TodayButton';
11import OkButton from '../calendar/OkButton';
12import TimePickerButton from '../calendar/TimePickerButton';
13
14var CalendarFooter = function (_React$Component) {
15 _inherits(CalendarFooter, _React$Component);
16
17 function CalendarFooter() {
18 _classCallCheck(this, CalendarFooter);
19
20 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
21 }
22
23 CalendarFooter.prototype.onSelect = function onSelect(value) {
24 this.props.onSelect(value);
25 };
26
27 CalendarFooter.prototype.getRootDOMNode = function getRootDOMNode() {
28 return ReactDOM.findDOMNode(this);
29 };
30
31 CalendarFooter.prototype.render = function render() {
32 var props = this.props;
33 var value = props.value,
34 prefixCls = props.prefixCls,
35 showOk = props.showOk,
36 timePicker = props.timePicker,
37 renderFooter = props.renderFooter,
38 mode = props.mode;
39
40 var footerEl = null;
41 var extraFooter = renderFooter && renderFooter(mode);
42 if (props.showToday || timePicker || extraFooter) {
43 var _cx;
44
45 var nowEl = void 0;
46 if (props.showToday) {
47 nowEl = React.createElement(TodayButton, _extends({}, props, { value: value }));
48 }
49 var okBtn = void 0;
50 if (showOk === true || showOk !== false && !!props.timePicker) {
51 okBtn = React.createElement(OkButton, props);
52 }
53 var timePickerBtn = void 0;
54 if (!!props.timePicker) {
55 timePickerBtn = React.createElement(TimePickerButton, props);
56 }
57
58 var footerBtn = void 0;
59 if (nowEl || timePickerBtn || okBtn || extraFooter) {
60 footerBtn = React.createElement(
61 'span',
62 { className: prefixCls + '-footer-btn' },
63 extraFooter,
64 toFragment([nowEl, timePickerBtn, okBtn])
65 );
66 }
67 var cls = cx(prefixCls + '-footer', (_cx = {}, _cx[prefixCls + '-footer-show-ok'] = okBtn, _cx));
68 footerEl = React.createElement(
69 'div',
70 { className: cls },
71 footerBtn
72 );
73 }
74 return footerEl;
75 };
76
77 return CalendarFooter;
78}(React.Component);
79
80CalendarFooter.propTypes = {
81 prefixCls: PropTypes.string,
82 showDateInput: PropTypes.bool,
83 disabledTime: PropTypes.any,
84 timePicker: PropTypes.element,
85 selectedValue: PropTypes.any,
86 showOk: PropTypes.bool,
87 onSelect: PropTypes.func,
88 value: PropTypes.object,
89 renderFooter: PropTypes.func,
90 defaultValue: PropTypes.object,
91 mode: PropTypes.string
92};
93export default CalendarFooter;
\No newline at end of file