index.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
  3. import * as React from 'react';
  4. import useTimeInfo from "../../hooks/useTimeInfo";
  5. import { fillTime } from "../../utils/dateUtil";
  6. import DatePanel from "../DatePanel";
  7. import TimePanel from "../TimePanel";
  8. export default function DateTimePanel(props) {
  9. var prefixCls = props.prefixCls,
  10. generateConfig = props.generateConfig,
  11. showTime = props.showTime,
  12. onSelect = props.onSelect,
  13. value = props.value,
  14. pickerValue = props.pickerValue,
  15. onHover = props.onHover;
  16. var panelPrefixCls = "".concat(prefixCls, "-datetime-panel");
  17. // =============================== Time ===============================
  18. var _useTimeInfo = useTimeInfo(generateConfig, showTime),
  19. _useTimeInfo2 = _slicedToArray(_useTimeInfo, 1),
  20. getValidTime = _useTimeInfo2[0];
  21. // Merge the time info from `value` or `pickerValue`
  22. var mergeTime = function mergeTime(date) {
  23. if (value) {
  24. return fillTime(generateConfig, date, value);
  25. }
  26. return fillTime(generateConfig, date, pickerValue);
  27. };
  28. // ============================== Hover ===============================
  29. var onDateHover = function onDateHover(date) {
  30. onHover === null || onHover === void 0 || onHover(date ? mergeTime(date) : date);
  31. };
  32. // ============================== Select ==============================
  33. var onDateSelect = function onDateSelect(date) {
  34. // Merge with current time
  35. var cloneDate = mergeTime(date);
  36. onSelect(getValidTime(cloneDate, cloneDate));
  37. };
  38. // ============================== Render ==============================
  39. return /*#__PURE__*/React.createElement("div", {
  40. className: panelPrefixCls
  41. }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {
  42. onSelect: onDateSelect,
  43. onHover: onDateHover
  44. })), /*#__PURE__*/React.createElement(TimePanel, props));
  45. }