diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 80048d1d8..ab5da96ce 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -1,5 +1,11 @@ # CHANGELOG +## Pending + +### Feats + +- `n-message` add `destroyAll` method. + ## 2.15.8 (2021-07-27) ### Feats diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index 35197ef20..a9994206b 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -1,5 +1,11 @@ # CHANGELOG +## Pending + +### Feats + +- `n-message` 增加 `destroyAll` 方法 + ## 2.15.8 (2021-07-27) ### Feats diff --git a/src/message/demos/enUS/index.demo-entry.md b/src/message/demos/enUS/index.demo-entry.md index 4e198031e..4643d76bb 100644 --- a/src/message/demos/enUS/index.demo-entry.md +++ b/src/message/demos/enUS/index.demo-entry.md @@ -62,6 +62,7 @@ multiple-line | Name | Type | Description | | --- | --- | --- | +| destroyAll | `() => void` | Destroy all popup messages. | | error | `(content: string \| (() => VNodeChild), option?: MessageOption) => MessageReactive` | Use error type message. | | info | `(content: string \| (() => VNodeChild), option?: MessageOption) => MessageReactive` | Use info type message. | | loading | `(content: string \| (() => VNodeChild), option?: MessageOption) => MessageReactive` | Use loading type message. | diff --git a/src/message/demos/zhCN/index.demo-entry.md b/src/message/demos/zhCN/index.demo-entry.md index c9ead2775..26b7e6468 100644 --- a/src/message/demos/zhCN/index.demo-entry.md +++ b/src/message/demos/zhCN/index.demo-entry.md @@ -62,6 +62,7 @@ multiple-line | 名称 | 类型 | 说明 | | --- | --- | --- | +| destroyAll | `() => void` | 销毁所有弹出的信息 | | error | `(content: string \| (() => VNodeChild), option?: MessageOption) => MessageReactive` | 调用 error 类型的信息 | | info | `(content: string \| (() => VNodeChild), option?: MessageOption) => MessageReactive` | 调用 info 类型的信息 | | loading | `(content: string \| (() => VNodeChild), option?: MessageOption) => MessageReactive` | 调用 loading 类型的信息 | diff --git a/src/message/src/MessageProvider.tsx b/src/message/src/MessageProvider.tsx index 2d8300326..4a7952e1b 100644 --- a/src/message/src/MessageProvider.tsx +++ b/src/message/src/MessageProvider.tsx @@ -36,6 +36,7 @@ export interface MessageApiInjection { warning: (content: ContentType, options?: MessageOptions) => MessageReactive error: (content: ContentType, options?: MessageOptions) => MessageReactive loading: (content: ContentType, options?: MessageOptions) => MessageReactive + destroyAll: () => void } export const messageApiInjectionKey: InjectionKey = @@ -107,7 +108,8 @@ export default defineComponent({ }, loading (content: ContentType, options?: MessageOptions) { return create(content, { ...options, type: 'loading' }) - } + }, + destroyAll } provide(messageProviderInjectionKey, { props, @@ -137,6 +139,11 @@ export default defineComponent({ 1 ) } + function destroyAll (): void { + Object.values(messageRefs.value).forEach((messageInstRef) => { + messageInstRef?.hide() + }) + } return Object.assign( { mergedClsPrefix: mergedClsPrefixRef,