From 250181748867aea3e667f5901723d4b01f213d02 Mon Sep 17 00:00:00 2001 From: Yugang Cao <34439652+Talljack@users.noreply.github.com> Date: Tue, 27 Jul 2021 23:30:49 +0800 Subject: [PATCH] feat(message): add message destroyAll method (#687) * feat: addd destroyAll * feat(message): add destroyAll method Co-authored-by: yugang.cao --- CHANGELOG.en-US.md | 6 ++++++ CHANGELOG.zh-CN.md | 6 ++++++ src/message/demos/enUS/index.demo-entry.md | 1 + src/message/demos/zhCN/index.demo-entry.md | 1 + src/message/src/MessageProvider.tsx | 9 ++++++++- 5 files changed, 22 insertions(+), 1 deletion(-) 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,