import { computed } from 'vue'; import useStyle from './style'; import useConfigInject from '../config-provider/hooks/useConfigInject'; import type { IconType } from './interface'; import Notice from '../vc-notification/Notice'; import classNames from '../_util/classNames'; import type { NoticeProps } from '../vc-notification/Notice'; import type { VueNode } from '../_util/type'; import { CheckCircleOutlined, CloseCircleOutlined, CloseOutlined, ExclamationCircleOutlined, InfoCircleOutlined, } from '@ant-design/icons-vue'; import { renderHelper } from '../_util/util'; export function getCloseIcon(prefixCls: string, closeIcon?: VueNode) { return ( closeIcon || ( ) ); } export interface PureContentProps { prefixCls: string; icon?: VueNode; message?: VueNode; description?: VueNode; btn?: VueNode; type?: IconType; } const typeToIcon = { success: CheckCircleOutlined, info: InfoCircleOutlined, error: CloseCircleOutlined, warning: ExclamationCircleOutlined, }; export function PureContent({ prefixCls, icon, type, message, description, btn, }: PureContentProps) { let iconNode = null; if (icon) { iconNode = {renderHelper(icon)}; } else if (type) { const Icon = typeToIcon[type]; iconNode = ; } return ( ); } export interface PurePanelProps extends Omit, Omit { prefixCls?: string; } /** @private Internal Component. Do not use in your production. */ export default function PurePanel(props: PurePanelProps) { const { getPrefixCls } = useConfigInject('notification', props); const prefixCls = computed(() => props.prefixCls || getPrefixCls('notification')); const noticePrefixCls = `${prefixCls.value}-notice`; const [, hashId] = useStyle(prefixCls); return ( ); }