index.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. "use client";
  2. var __rest = this && this.__rest || function (s, e) {
  3. var t = {};
  4. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  5. if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  6. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  7. }
  8. return t;
  9. };
  10. import * as React from 'react';
  11. import classNames from 'classnames';
  12. import { devUseWarning } from '../_util/warning';
  13. import { useComponentConfig } from '../config-provider/context';
  14. import { useLocale } from '../locale';
  15. import DefaultEmptyImg from './empty';
  16. import SimpleEmptyImg from './simple';
  17. import useStyle from './style';
  18. const defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);
  19. const simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);
  20. const Empty = props => {
  21. var _a;
  22. const {
  23. className,
  24. rootClassName,
  25. prefixCls: customizePrefixCls,
  26. image,
  27. description,
  28. children,
  29. imageStyle,
  30. style,
  31. classNames: emptyClassNames,
  32. styles
  33. } = props,
  34. restProps = __rest(props, ["className", "rootClassName", "prefixCls", "image", "description", "children", "imageStyle", "style", "classNames", "styles"]);
  35. const {
  36. getPrefixCls,
  37. direction,
  38. className: contextClassName,
  39. style: contextStyle,
  40. classNames: contextClassNames,
  41. styles: contextStyles,
  42. image: contextImage
  43. } = useComponentConfig('empty');
  44. const prefixCls = getPrefixCls('empty', customizePrefixCls);
  45. const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);
  46. const [locale] = useLocale('Empty');
  47. const des = typeof description !== 'undefined' ? description : locale === null || locale === void 0 ? void 0 : locale.description;
  48. const alt = typeof des === 'string' ? des : 'empty';
  49. const mergedImage = (_a = image !== null && image !== void 0 ? image : contextImage) !== null && _a !== void 0 ? _a : defaultEmptyImg;
  50. let imageNode = null;
  51. if (typeof mergedImage === 'string') {
  52. imageNode = /*#__PURE__*/React.createElement("img", {
  53. draggable: false,
  54. alt: alt,
  55. src: mergedImage
  56. });
  57. } else {
  58. imageNode = mergedImage;
  59. }
  60. // ============================= Warning ==============================
  61. if (process.env.NODE_ENV !== 'production') {
  62. const warning = devUseWarning('Empty');
  63. [['imageStyle', 'styles: { image: {} }']].forEach(([deprecatedName, newName]) => {
  64. warning.deprecated(!(deprecatedName in props), deprecatedName, newName);
  65. });
  66. }
  67. return wrapCSSVar(/*#__PURE__*/React.createElement("div", Object.assign({
  68. className: classNames(hashId, cssVarCls, prefixCls, contextClassName, {
  69. [`${prefixCls}-normal`]: mergedImage === simpleEmptyImg,
  70. [`${prefixCls}-rtl`]: direction === 'rtl'
  71. }, className, rootClassName, contextClassNames.root, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.root),
  72. style: Object.assign(Object.assign(Object.assign(Object.assign({}, contextStyles.root), contextStyle), styles === null || styles === void 0 ? void 0 : styles.root), style)
  73. }, restProps), /*#__PURE__*/React.createElement("div", {
  74. className: classNames(`${prefixCls}-image`, contextClassNames.image, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.image),
  75. style: Object.assign(Object.assign(Object.assign({}, imageStyle), contextStyles.image), styles === null || styles === void 0 ? void 0 : styles.image)
  76. }, imageNode), des && (/*#__PURE__*/React.createElement("div", {
  77. className: classNames(`${prefixCls}-description`, contextClassNames.description, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.description),
  78. style: Object.assign(Object.assign({}, contextStyles.description), styles === null || styles === void 0 ? void 0 : styles.description)
  79. }, des)), children && (/*#__PURE__*/React.createElement("div", {
  80. className: classNames(`${prefixCls}-footer`, contextClassNames.footer, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.footer),
  81. style: Object.assign(Object.assign({}, contextStyles.footer), styles === null || styles === void 0 ? void 0 : styles.footer)
  82. }, children))));
  83. };
  84. Empty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;
  85. Empty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;
  86. if (process.env.NODE_ENV !== 'production') {
  87. Empty.displayName = 'Empty';
  88. }
  89. export default Empty;