소스 검색

fix(use-message): `content` not support vNode

修复封装的`useMessage`部分函数中`content`不支持vNode类型以及`createConfirm`不支持html的问题
无木 3 년 전
부모
커밋
154ebc3d96
1개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  1. 7 1
      src/hooks/web/useMessage.tsx

+ 7 - 1
src/hooks/web/useMessage.tsx

@@ -5,6 +5,7 @@ import { InfoCircleFilled, CheckCircleFilled, CloseCircleFilled } from '@ant-des
 
 import { ArgsProps, ConfigProps } from 'ant-design-vue/lib/notification';
 import { useI18n } from './useI18n';
+import { isString } from '/@/utils/is';
 
 export interface NotifyApi {
   info(config: ArgsProps): void;
@@ -46,7 +47,11 @@ function getIcon(iconType: string) {
 }
 
 function renderContent({ content }: Pick<ModalOptionsEx, 'content'>) {
-  return <div innerHTML={`<div>${content as string}</div>`}></div>;
+  if (isString(content)) {
+    return <div innerHTML={`<div>${content as string}</div>`}></div>;
+  } else {
+    return content;
+  }
 }
 
 /**
@@ -59,6 +64,7 @@ function createConfirm(options: ModalOptionsEx): ConfirmOptions {
     centered: true,
     icon: getIcon(iconType),
     ...options,
+    content: renderContent(options),
   };
   return Modal.confirm(opt) as unknown as ConfirmOptions;
 }