diff --git a/examples/vite/src/App.tsx b/examples/vite/src/App.tsx index 08b72bb7df..6942b7d431 100644 --- a/examples/vite/src/App.tsx +++ b/examples/vite/src/App.tsx @@ -20,6 +20,7 @@ import { Chat, ChatView, createIcon, + DialogManagerProvider, MessageReactions, type NotificationListProps, NotificationList, @@ -52,6 +53,7 @@ import { getSelectedChatViewFromUrl, } from './ChatLayout/Sync.tsx'; import { LoadingScreen } from './LoadingScreen/LoadingScreen.tsx'; +import { SystemNotification } from './SystemNotification/SystemNotification.tsx'; import { chatViewSelectorItemSet } from './Sidebar/ChatViewSelectorItemSet.tsx'; import { CustomAttachmentActions, @@ -206,6 +208,7 @@ const MessageUiOverride = messageUiVariant const systemMessageVariant = getSystemMessageVariant(); const reactionsVariant = getReactionsVariant(); const attachmentActionsVariant = getAttachmentActionsVariant(); +const globalDialogManager = 'globalDialogManager'; const CustomAttachmentWithActions = (props: AttachmentProps) => ( @@ -411,27 +414,32 @@ const App = () => { style={initialAppLayoutStyle} data-variant={messageUiVariant ?? undefined} > - - - - - - +
+ + - - + + + + + + + + +
diff --git a/examples/vite/src/AppSettings/ActionsMenu/ActionsMenu.tsx b/examples/vite/src/AppSettings/ActionsMenu/ActionsMenu.tsx index 29f5803dd5..100b555903 100644 --- a/examples/vite/src/AppSettings/ActionsMenu/ActionsMenu.tsx +++ b/examples/vite/src/AppSettings/ActionsMenu/ActionsMenu.tsx @@ -1,15 +1,13 @@ -import { useMemo, useState } from 'react'; import type { ComponentProps } from 'react'; +import { useState } from 'react'; import { Button, ContextMenu, ContextMenuButton, - DialogManagerProvider, IconBolt, useContextMenuContext, useDialogIsOpen, useDialogOnNearestManager, - type ContextMenuItemComponent, } from 'stream-chat-react'; import { NotificationPromptDialog, @@ -57,23 +55,18 @@ const ActionsMenuButton = ({ ); export const ActionsMenu = ({ iconOnly = true }: { iconOnly?: boolean }) => ( - - - + ); -function TriggerNotification() { +function TriggerNotificationAction({ onTrigger }: { onTrigger: () => void }) { const { closeMenu } = useContextMenuContext(); - const { dialog: notificationDialog } = useDialogOnNearestManager({ - id: notificationPromptDialogId, - }); return ( { closeMenu(); - notificationDialog.open(); + onTrigger(); }} /> ); @@ -86,6 +79,9 @@ const ActionsMenuInner = ({ iconOnly }: { iconOnly: boolean }) => { const { dialog: actionsMenuDialog, dialogManager } = useDialogOnNearestManager({ id: actionsMenuDialogId, }); + const { dialog: notificationDialog } = useDialogOnNearestManager({ + id: notificationPromptDialogId, + }); const menuIsOpen = useDialogIsOpen(actionsMenuDialogId, dialogManager?.id); @@ -108,7 +104,7 @@ const ActionsMenuInner = ({ iconOnly }: { iconOnly: boolean }) => { tabIndex={-1} trapFocus > - + diff --git a/examples/vite/src/AppSettings/ActionsMenu/NotificationPromptDialog.tsx b/examples/vite/src/AppSettings/ActionsMenu/NotificationPromptDialog.tsx index 4e397af3e0..a050236c6a 100644 --- a/examples/vite/src/AppSettings/ActionsMenu/NotificationPromptDialog.tsx +++ b/examples/vite/src/AppSettings/ActionsMenu/NotificationPromptDialog.tsx @@ -2,7 +2,6 @@ import { useCallback, useEffect, useRef, useState } from 'react'; import type { Dispatch, PointerEvent as ReactPointerEvent, SetStateAction } from 'react'; import type { NotificationSeverity } from 'stream-chat'; import { - addNotificationTargetTag, IconArrowDown, IconArrowLeft, IconChevronRight, @@ -19,7 +18,7 @@ import { NumericInput, Prompt, TextInput, - useChatContext, + useNotificationApi, useDialogIsOpen, useDialogOnNearestManager, type NotificationListEnterFrom, @@ -197,16 +196,17 @@ const NotificationDraftForm = ({ options={severityOptions} value={draft.severity} /> -