123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- "use client";
- var __rest = this && this.__rest || function (s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
- }
- return t;
- };
- import * as React from 'react';
- import CheckCircleFilled from "@ant-design/icons/es/icons/CheckCircleFilled";
- import CloseCircleFilled from "@ant-design/icons/es/icons/CloseCircleFilled";
- import CloseOutlined from "@ant-design/icons/es/icons/CloseOutlined";
- import ExclamationCircleFilled from "@ant-design/icons/es/icons/ExclamationCircleFilled";
- import InfoCircleFilled from "@ant-design/icons/es/icons/InfoCircleFilled";
- import LoadingOutlined from "@ant-design/icons/es/icons/LoadingOutlined";
- import classNames from 'classnames';
- import { Notice } from 'rc-notification';
- import { devUseWarning } from '../_util/warning';
- import { ConfigContext } from '../config-provider';
- import useCSSVarCls from '../config-provider/hooks/useCSSVarCls';
- import useStyle from './style';
- import PurePanelStyle from './style/pure-panel';
- export const TypeIcon = {
- info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),
- success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),
- error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),
- warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),
- loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)
- };
- export function getCloseIcon(prefixCls, closeIcon) {
- if (closeIcon === null || closeIcon === false) {
- return null;
- }
- return closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {
- className: `${prefixCls}-close-icon`
- });
- }
- const typeToIcon = {
- success: CheckCircleFilled,
- info: InfoCircleFilled,
- error: CloseCircleFilled,
- warning: ExclamationCircleFilled
- };
- export const PureContent = props => {
- const {
- prefixCls,
- icon,
- type,
- message,
- description,
- actions,
- role = 'alert'
- } = props;
- let iconNode = null;
- if (icon) {
- iconNode = /*#__PURE__*/React.createElement("span", {
- className: `${prefixCls}-icon`
- }, icon);
- } else if (type) {
- iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {
- className: classNames(`${prefixCls}-icon`, `${prefixCls}-icon-${type}`)
- });
- }
- return /*#__PURE__*/React.createElement("div", {
- className: classNames({
- [`${prefixCls}-with-icon`]: iconNode
- }),
- role: role
- }, iconNode, /*#__PURE__*/React.createElement("div", {
- className: `${prefixCls}-message`
- }, message), description && /*#__PURE__*/React.createElement("div", {
- className: `${prefixCls}-description`
- }, description), actions && /*#__PURE__*/React.createElement("div", {
- className: `${prefixCls}-actions`
- }, actions));
- };
- /** @private Internal Component. Do not use in your production. */
- const PurePanel = props => {
- const {
- prefixCls: staticPrefixCls,
- className,
- icon,
- type,
- message,
- description,
- btn,
- actions,
- closable = true,
- closeIcon,
- className: notificationClassName
- } = props,
- restProps = __rest(props, ["prefixCls", "className", "icon", "type", "message", "description", "btn", "actions", "closable", "closeIcon", "className"]);
- const {
- getPrefixCls
- } = React.useContext(ConfigContext);
- const mergedActions = actions !== null && actions !== void 0 ? actions : btn;
- if (process.env.NODE_ENV !== 'production') {
- const warning = devUseWarning('Notification');
- warning.deprecated(!btn, 'btn', 'actions');
- }
- const prefixCls = staticPrefixCls || getPrefixCls('notification');
- const noticePrefixCls = `${prefixCls}-notice`;
- const rootCls = useCSSVarCls(prefixCls);
- const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);
- return wrapCSSVar(/*#__PURE__*/React.createElement("div", {
- className: classNames(`${noticePrefixCls}-pure-panel`, hashId, className, cssVarCls, rootCls)
- }, /*#__PURE__*/React.createElement(PurePanelStyle, {
- prefixCls: prefixCls
- }), /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {
- prefixCls: prefixCls,
- eventKey: "pure",
- duration: null,
- closable: closable,
- className: classNames({
- notificationClassName
- }),
- closeIcon: getCloseIcon(prefixCls, closeIcon),
- content: /*#__PURE__*/React.createElement(PureContent, {
- prefixCls: noticePrefixCls,
- icon: icon,
- type: type,
- message: message,
- description: description,
- actions: mergedActions
- })
- }))));
- };
- export default PurePanel;
|