PopupPanel.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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 = PopupPanel;
  8. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  9. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  10. var React = _interopRequireWildcard(require("react"));
  11. var _PickerPanel = _interopRequireDefault(require("../../PickerPanel"));
  12. var _context = require("../../PickerPanel/context");
  13. var _context2 = _interopRequireDefault(require("../context"));
  14. var _useRangePickerValue = require("../hooks/useRangePickerValue");
  15. function PopupPanel(props) {
  16. var picker = props.picker,
  17. multiplePanel = props.multiplePanel,
  18. pickerValue = props.pickerValue,
  19. onPickerValueChange = props.onPickerValueChange,
  20. needConfirm = props.needConfirm,
  21. onSubmit = props.onSubmit,
  22. range = props.range,
  23. hoverValue = props.hoverValue;
  24. var _React$useContext = React.useContext(_context2.default),
  25. prefixCls = _React$useContext.prefixCls,
  26. generateConfig = _React$useContext.generateConfig;
  27. // ======================== Offset ========================
  28. var internalOffsetDate = React.useCallback(function (date, offset) {
  29. return (0, _useRangePickerValue.offsetPanelDate)(generateConfig, picker, date, offset);
  30. }, [generateConfig, picker]);
  31. var nextPickerValue = React.useMemo(function () {
  32. return internalOffsetDate(pickerValue, 1);
  33. }, [pickerValue, internalOffsetDate]);
  34. // Outside
  35. var onSecondPickerValueChange = function onSecondPickerValueChange(nextDate) {
  36. onPickerValueChange(internalOffsetDate(nextDate, -1));
  37. };
  38. // ======================= Context ========================
  39. var sharedContext = {
  40. onCellDblClick: function onCellDblClick() {
  41. if (needConfirm) {
  42. onSubmit();
  43. }
  44. }
  45. };
  46. var hideHeader = picker === 'time';
  47. // ======================== Props =========================
  48. var pickerProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
  49. hoverValue: null,
  50. hoverRangeValue: null,
  51. hideHeader: hideHeader
  52. });
  53. if (range) {
  54. pickerProps.hoverRangeValue = hoverValue;
  55. } else {
  56. pickerProps.hoverValue = hoverValue;
  57. }
  58. // ======================== Render ========================
  59. // Multiple
  60. if (multiplePanel) {
  61. return /*#__PURE__*/React.createElement("div", {
  62. className: "".concat(prefixCls, "-panels")
  63. }, /*#__PURE__*/React.createElement(_context.PickerHackContext.Provider, {
  64. value: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, sharedContext), {}, {
  65. hideNext: true
  66. })
  67. }, /*#__PURE__*/React.createElement(_PickerPanel.default, pickerProps)), /*#__PURE__*/React.createElement(_context.PickerHackContext.Provider, {
  68. value: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, sharedContext), {}, {
  69. hidePrev: true
  70. })
  71. }, /*#__PURE__*/React.createElement(_PickerPanel.default, (0, _extends2.default)({}, pickerProps, {
  72. pickerValue: nextPickerValue,
  73. onPickerValueChange: onSecondPickerValueChange
  74. }))));
  75. }
  76. // Single
  77. return /*#__PURE__*/React.createElement(_context.PickerHackContext.Provider, {
  78. value: (0, _objectSpread2.default)({}, sharedContext)
  79. }, /*#__PURE__*/React.createElement(_PickerPanel.default, pickerProps));
  80. }