import CheckCircleFilled from '@ant-design/icons/CheckCircleFilled'; import CloseCircleFilled from '@ant-design/icons/CloseCircleFilled'; import ExclamationCircleFilled from '@ant-design/icons/ExclamationCircleFilled'; import InfoCircleFilled from '@ant-design/icons/InfoCircleFilled'; import LoadingOutlined from '@ant-design/icons/LoadingOutlined'; import classNames from 'classnames'; import { Notice } from 'rc-notification'; import type { NoticeProps } from 'rc-notification/lib/Notice'; import * as React from 'react'; import { ConfigContext } from '../config-provider'; import type { NoticeType } from './interface'; import useStyle from './style'; import useCSSVar from './style/cssVar'; import useCSSVarCls from '../config-provider/hooks/useCSSVarCls'; export const TypeIcon = { info: , success: , error: , warning: , loading: , }; export interface PureContentProps { prefixCls: string; type?: NoticeType; icon?: React.ReactNode; children: React.ReactNode; } export const PureContent: React.FC = ({ prefixCls, type, icon, children }) => (
{icon || TypeIcon[type!]} {children}
); export interface PurePanelProps extends Omit, Omit { prefixCls?: string; } /** @private Internal Component. Do not use in your production. */ const PurePanel: React.FC = (props) => { const { prefixCls: staticPrefixCls, className, type, icon, content, ...restProps } = props; const { getPrefixCls } = React.useContext(ConfigContext); const prefixCls = staticPrefixCls || getPrefixCls('message'); const [, hashId] = useStyle(prefixCls); const rootCls = useCSSVarCls(prefixCls); const wrapCSSVar = useCSSVar(rootCls); return wrapCSSVar( {content} } />, ); }; export default PurePanel;