diff --git a/samples/sample-action-button-dropdown-plugin/src/components/sample-action-button-dropdown-plugin-item/component.tsx b/samples/sample-action-button-dropdown-plugin/src/components/sample-action-button-dropdown-plugin-item/component.tsx index 0ba1d46a..37cbb1c1 100644 --- a/samples/sample-action-button-dropdown-plugin/src/components/sample-action-button-dropdown-plugin-item/component.tsx +++ b/samples/sample-action-button-dropdown-plugin/src/components/sample-action-button-dropdown-plugin-item/component.tsx @@ -155,6 +155,15 @@ function SampleActionButtonDropdownPlugin( }, 5000); }, }), + new ActionButtonDropdownOption({ + label: 'Stop notifications', + icon: 'copy', + tooltip: 'this is a button injected by plugin', + allowed: true, + onClick: () => { + pluginApi.uiCommands.notification.setEnabledDisplayNotifications(false); + }, + }), new ActionButtonDropdownOption({ label: showingGenericContentInPresentationArea ? 'Return previous presentation content' : 'Set different content in presentation area', icon: 'copy', diff --git a/src/ui-commands/notification/commands.ts b/src/ui-commands/notification/commands.ts index 07ebbefe..f9b819bc 100644 --- a/src/ui-commands/notification/commands.ts +++ b/src/ui-commands/notification/commands.ts @@ -1,5 +1,5 @@ import { NotificationEnum } from './enums'; -import { SendNotificationCommandArguments } from './types'; +import { SendNotificationCommandArguments, SetEnableDisplayNotificationsArguments } from './types'; export const notification = { /** @@ -14,4 +14,16 @@ export const notification = { }), ); }, + /** + * Decides if notifications stop being displayed. + */ + setEnabledDisplayNotifications: (isNotificationDisplayEnabled: boolean) => { + window.dispatchEvent( + new CustomEvent< + SetEnableDisplayNotificationsArguments + >(NotificationEnum.SET_ENABLED_DISPLAY, { + detail: { isNotificationDisplayEnabled }, + }), + ); + }, }; diff --git a/src/ui-commands/notification/enums.ts b/src/ui-commands/notification/enums.ts index 1d4519d3..7052d607 100644 --- a/src/ui-commands/notification/enums.ts +++ b/src/ui-commands/notification/enums.ts @@ -1,5 +1,6 @@ export enum NotificationEnum { - SEND = 'SEND_NOTIFICATION', + SEND = 'SEND_NOTIFICATION_COMMAND', + SET_ENABLED_DISPLAY = 'SET_ENABLED_DISPLAY_COMMAND' } export enum NotificationTypeUiCommand { diff --git a/src/ui-commands/notification/types.ts b/src/ui-commands/notification/types.ts index 8159c8f0..6bb25427 100644 --- a/src/ui-commands/notification/types.ts +++ b/src/ui-commands/notification/types.ts @@ -15,6 +15,11 @@ export interface SendNotificationCommandArguments { small?: boolean; } +export interface SetEnableDisplayNotificationsArguments { + isNotificationDisplayEnabled: boolean; +} + export interface UiCommandsNotificationObject { send: (information: SendNotificationCommandArguments) => void; + setEnabledDisplayNotifications: (isNotificationDisplayEnabled: boolean) => void; }