useCellRender.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 = useCellRender;
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _rcUtil = require("rc-util");
  10. var React = _interopRequireWildcard(require("react"));
  11. function useCellRender(cellRender, dateRender, monthCellRender, range) {
  12. // ========================= Warn =========================
  13. if (process.env.NODE_ENV !== 'production') {
  14. (0, _rcUtil.warning)(!dateRender, "'dateRender' is deprecated. Please use 'cellRender' instead.");
  15. (0, _rcUtil.warning)(!monthCellRender, "'monthCellRender' is deprecated. Please use 'cellRender' instead.");
  16. }
  17. // ======================== Render ========================
  18. // Merged render
  19. var mergedCellRender = React.useMemo(function () {
  20. if (cellRender) {
  21. return cellRender;
  22. }
  23. return function (current, info) {
  24. var date = current;
  25. if (dateRender && info.type === 'date') {
  26. return dateRender(date, info.today);
  27. }
  28. if (monthCellRender && info.type === 'month') {
  29. return monthCellRender(date, info.locale);
  30. }
  31. return info.originNode;
  32. };
  33. }, [cellRender, monthCellRender, dateRender]);
  34. // Cell render
  35. var onInternalCellRender = React.useCallback(function (date, info) {
  36. return mergedCellRender(date, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, info), {}, {
  37. range: range
  38. }));
  39. }, [mergedCellRender, range]);
  40. return onInternalCellRender;
  41. }