Footer.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = Footer;
  8. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  9. var _classnames = _interopRequireDefault(require("classnames"));
  10. var React = _interopRequireWildcard(require("react"));
  11. var _useTimeInfo3 = _interopRequireDefault(require("../../hooks/useTimeInfo"));
  12. var _context = _interopRequireDefault(require("../context"));
  13. function Footer(props) {
  14. var mode = props.mode,
  15. internalMode = props.internalMode,
  16. renderExtraFooter = props.renderExtraFooter,
  17. showNow = props.showNow,
  18. showTime = props.showTime,
  19. onSubmit = props.onSubmit,
  20. onNow = props.onNow,
  21. invalid = props.invalid,
  22. needConfirm = props.needConfirm,
  23. generateConfig = props.generateConfig,
  24. disabledDate = props.disabledDate;
  25. var _React$useContext = React.useContext(_context.default),
  26. prefixCls = _React$useContext.prefixCls,
  27. locale = _React$useContext.locale,
  28. _React$useContext$but = _React$useContext.button,
  29. Button = _React$useContext$but === void 0 ? 'button' : _React$useContext$but;
  30. // >>> Now
  31. var now = generateConfig.getNow();
  32. var _useTimeInfo = (0, _useTimeInfo3.default)(generateConfig, showTime, now),
  33. _useTimeInfo2 = (0, _slicedToArray2.default)(_useTimeInfo, 1),
  34. getValidTime = _useTimeInfo2[0];
  35. // ======================== Extra =========================
  36. var extraNode = renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter(mode);
  37. // ======================== Ranges ========================
  38. var nowDisabled = disabledDate(now, {
  39. type: mode
  40. });
  41. var onInternalNow = function onInternalNow() {
  42. if (!nowDisabled) {
  43. var validateNow = getValidTime(now);
  44. onNow(validateNow);
  45. }
  46. };
  47. var nowPrefixCls = "".concat(prefixCls, "-now");
  48. var nowBtnPrefixCls = "".concat(nowPrefixCls, "-btn");
  49. var presetNode = showNow && /*#__PURE__*/React.createElement("li", {
  50. className: nowPrefixCls
  51. }, /*#__PURE__*/React.createElement("a", {
  52. className: (0, _classnames.default)(nowBtnPrefixCls, nowDisabled && "".concat(nowBtnPrefixCls, "-disabled")),
  53. "aria-disabled": nowDisabled,
  54. onClick: onInternalNow
  55. }, internalMode === 'date' ? locale.today : locale.now));
  56. // >>> OK
  57. var okNode = needConfirm && /*#__PURE__*/React.createElement("li", {
  58. className: "".concat(prefixCls, "-ok")
  59. }, /*#__PURE__*/React.createElement(Button, {
  60. disabled: invalid,
  61. onClick: onSubmit
  62. }, locale.ok));
  63. var rangeNode = (presetNode || okNode) && /*#__PURE__*/React.createElement("ul", {
  64. className: "".concat(prefixCls, "-ranges")
  65. }, presetNode, okNode);
  66. // ======================== Render ========================
  67. if (!extraNode && !rangeNode) {
  68. return null;
  69. }
  70. return /*#__PURE__*/React.createElement("div", {
  71. className: "".concat(prefixCls, "-footer")
  72. }, extraNode && /*#__PURE__*/React.createElement("div", {
  73. className: "".concat(prefixCls, "-footer-extra")
  74. }, extraNode), rangeNode);
  75. }