PurePanel.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. "use strict";
  2. "use client";
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  5. Object.defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = exports.TypeIcon = exports.PureContent = void 0;
  9. exports.getCloseIcon = getCloseIcon;
  10. var React = _interopRequireWildcard(require("react"));
  11. var _CheckCircleFilled = _interopRequireDefault(require("@ant-design/icons/CheckCircleFilled"));
  12. var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons/CloseCircleFilled"));
  13. var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
  14. var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons/ExclamationCircleFilled"));
  15. var _InfoCircleFilled = _interopRequireDefault(require("@ant-design/icons/InfoCircleFilled"));
  16. var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/LoadingOutlined"));
  17. var _classnames = _interopRequireDefault(require("classnames"));
  18. var _rcNotification = require("rc-notification");
  19. var _warning = require("../_util/warning");
  20. var _configProvider = require("../config-provider");
  21. var _useCSSVarCls = _interopRequireDefault(require("../config-provider/hooks/useCSSVarCls"));
  22. var _style = _interopRequireDefault(require("./style"));
  23. var _purePanel = _interopRequireDefault(require("./style/pure-panel"));
  24. var __rest = void 0 && (void 0).__rest || function (s, e) {
  25. var t = {};
  26. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  27. if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  28. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  29. }
  30. return t;
  31. };
  32. const TypeIcon = exports.TypeIcon = {
  33. info: /*#__PURE__*/React.createElement(_InfoCircleFilled.default, null),
  34. success: /*#__PURE__*/React.createElement(_CheckCircleFilled.default, null),
  35. error: /*#__PURE__*/React.createElement(_CloseCircleFilled.default, null),
  36. warning: /*#__PURE__*/React.createElement(_ExclamationCircleFilled.default, null),
  37. loading: /*#__PURE__*/React.createElement(_LoadingOutlined.default, null)
  38. };
  39. function getCloseIcon(prefixCls, closeIcon) {
  40. if (closeIcon === null || closeIcon === false) {
  41. return null;
  42. }
  43. return closeIcon || /*#__PURE__*/React.createElement(_CloseOutlined.default, {
  44. className: `${prefixCls}-close-icon`
  45. });
  46. }
  47. const typeToIcon = {
  48. success: _CheckCircleFilled.default,
  49. info: _InfoCircleFilled.default,
  50. error: _CloseCircleFilled.default,
  51. warning: _ExclamationCircleFilled.default
  52. };
  53. const PureContent = props => {
  54. const {
  55. prefixCls,
  56. icon,
  57. type,
  58. message,
  59. description,
  60. actions,
  61. role = 'alert'
  62. } = props;
  63. let iconNode = null;
  64. if (icon) {
  65. iconNode = /*#__PURE__*/React.createElement("span", {
  66. className: `${prefixCls}-icon`
  67. }, icon);
  68. } else if (type) {
  69. iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {
  70. className: (0, _classnames.default)(`${prefixCls}-icon`, `${prefixCls}-icon-${type}`)
  71. });
  72. }
  73. return /*#__PURE__*/React.createElement("div", {
  74. className: (0, _classnames.default)({
  75. [`${prefixCls}-with-icon`]: iconNode
  76. }),
  77. role: role
  78. }, iconNode, /*#__PURE__*/React.createElement("div", {
  79. className: `${prefixCls}-message`
  80. }, message), description && /*#__PURE__*/React.createElement("div", {
  81. className: `${prefixCls}-description`
  82. }, description), actions && /*#__PURE__*/React.createElement("div", {
  83. className: `${prefixCls}-actions`
  84. }, actions));
  85. };
  86. /** @private Internal Component. Do not use in your production. */
  87. exports.PureContent = PureContent;
  88. const PurePanel = props => {
  89. const {
  90. prefixCls: staticPrefixCls,
  91. className,
  92. icon,
  93. type,
  94. message,
  95. description,
  96. btn,
  97. actions,
  98. closable = true,
  99. closeIcon,
  100. className: notificationClassName
  101. } = props,
  102. restProps = __rest(props, ["prefixCls", "className", "icon", "type", "message", "description", "btn", "actions", "closable", "closeIcon", "className"]);
  103. const {
  104. getPrefixCls
  105. } = React.useContext(_configProvider.ConfigContext);
  106. const mergedActions = actions !== null && actions !== void 0 ? actions : btn;
  107. if (process.env.NODE_ENV !== 'production') {
  108. const warning = (0, _warning.devUseWarning)('Notification');
  109. warning.deprecated(!btn, 'btn', 'actions');
  110. }
  111. const prefixCls = staticPrefixCls || getPrefixCls('notification');
  112. const noticePrefixCls = `${prefixCls}-notice`;
  113. const rootCls = (0, _useCSSVarCls.default)(prefixCls);
  114. const [wrapCSSVar, hashId, cssVarCls] = (0, _style.default)(prefixCls, rootCls);
  115. return wrapCSSVar(/*#__PURE__*/React.createElement("div", {
  116. className: (0, _classnames.default)(`${noticePrefixCls}-pure-panel`, hashId, className, cssVarCls, rootCls)
  117. }, /*#__PURE__*/React.createElement(_purePanel.default, {
  118. prefixCls: prefixCls
  119. }), /*#__PURE__*/React.createElement(_rcNotification.Notice, Object.assign({}, restProps, {
  120. prefixCls: prefixCls,
  121. eventKey: "pure",
  122. duration: null,
  123. closable: closable,
  124. className: (0, _classnames.default)({
  125. notificationClassName
  126. }),
  127. closeIcon: getCloseIcon(prefixCls, closeIcon),
  128. content: /*#__PURE__*/React.createElement(PureContent, {
  129. prefixCls: noticePrefixCls,
  130. icon: icon,
  131. type: type,
  132. message: message,
  133. description: description,
  134. actions: mergedActions
  135. })
  136. }))));
  137. };
  138. var _default = exports.default = PurePanel;