stream-chat-react 14.4.1 → 14.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{ReactPlayerWrapper.16cd6fed.js → ReactPlayerWrapper.30240f76.js} +2 -2
- package/dist/cjs/{ReactPlayerWrapper.16cd6fed.js.map → ReactPlayerWrapper.30240f76.js.map} +1 -1
- package/dist/cjs/channel-detail.js +3007 -0
- package/dist/cjs/channel-detail.js.map +1 -0
- package/dist/cjs/emojis.js +5 -4
- package/dist/cjs/emojis.js.map +1 -1
- package/dist/cjs/index.js +2273 -4163
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/useChannelHeaderOnlineStatus.6546ac83.js +4143 -0
- package/dist/cjs/useChannelHeaderOnlineStatus.6546ac83.js.map +1 -0
- package/dist/cjs/useMessageComposerController.c0dad9bc.js +99 -0
- package/dist/cjs/useMessageComposerController.c0dad9bc.js.map +1 -0
- package/dist/cjs/{useNotificationApi.9ffe5761.js → useNotificationApi.eb753f31.js} +156 -168
- package/dist/cjs/useNotificationApi.eb753f31.js.map +1 -0
- package/dist/css/channel-detail.css +825 -0
- package/dist/css/channel-detail.css.map +1 -0
- package/dist/css/index.css +297 -31
- package/dist/css/index.css.map +1 -1
- package/dist/es/channel-detail.mjs +2950 -0
- package/dist/es/channel-detail.mjs.map +1 -0
- package/dist/es/emojis.mjs +2 -1
- package/dist/es/emojis.mjs.map +1 -1
- package/dist/es/index.mjs +1859 -3774
- package/dist/es/index.mjs.map +1 -1
- package/dist/es/useChannelHeaderOnlineStatus.c5215b13.mjs +3600 -0
- package/dist/es/useChannelHeaderOnlineStatus.c5215b13.mjs.map +1 -0
- package/dist/es/useMessageComposerController.29f189b4.mjs +69 -0
- package/dist/es/useMessageComposerController.29f189b4.mjs.map +1 -0
- package/dist/es/{useNotificationApi.88c33caa.mjs → useNotificationApi.fa5cddf9.mjs} +123 -141
- package/dist/es/useNotificationApi.fa5cddf9.mjs.map +1 -0
- package/dist/types/components/AudioPlayback/components/index.d.ts +1 -0
- package/dist/types/components/AudioPlayback/components/index.d.ts.map +1 -1
- package/dist/types/components/Avatar/Avatar.d.ts +4 -2
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Avatar/ChannelAvatar.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useMentionsHandlers.d.ts +8 -3
- package/dist/types/components/Channel/hooks/useMentionsHandlers.d.ts.map +1 -1
- package/dist/types/components/ChannelHeader/hooks/useChannelHasMembersOnline.d.ts +7 -0
- package/dist/types/components/ChannelHeader/hooks/useChannelHasMembersOnline.d.ts.map +1 -0
- package/dist/types/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.d.ts +6 -1
- package/dist/types/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/index.d.ts +1 -0
- package/dist/types/components/ChannelListItem/hooks/index.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useChannelPreviewInfo.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useIsUserMuted.d.ts +2 -0
- package/dist/types/components/ChannelListItem/hooks/useIsUserMuted.d.ts.map +1 -0
- package/dist/types/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/components/Dialog/components/Prompt.d.ts +7 -4
- package/dist/types/components/Dialog/components/Prompt.d.ts.map +1 -1
- package/dist/types/components/Dialog/service/DialogPortal.d.ts +5 -1
- package/dist/types/components/Dialog/service/DialogPortal.d.ts.map +1 -1
- package/dist/types/components/FileIcon/iconMap.d.ts.map +1 -1
- package/dist/types/components/Form/Checkbox.d.ts +8 -0
- package/dist/types/components/Form/Checkbox.d.ts.map +1 -0
- package/dist/types/components/Form/SwitchField.d.ts +6 -0
- package/dist/types/components/Form/SwitchField.d.ts.map +1 -1
- package/dist/types/components/Form/index.d.ts +1 -0
- package/dist/types/components/Form/index.d.ts.map +1 -1
- package/dist/types/components/Icons/icons.d.ts +24 -0
- package/dist/types/components/Icons/icons.d.ts.map +1 -1
- package/dist/types/components/InfiniteScrollPaginator/index.d.ts +1 -0
- package/dist/types/components/InfiniteScrollPaginator/index.d.ts.map +1 -1
- package/dist/types/components/ListItemLayout/ListItemLayout.d.ts +34 -0
- package/dist/types/components/ListItemLayout/ListItemLayout.d.ts.map +1 -0
- package/dist/types/components/ListItemLayout/index.d.ts +2 -0
- package/dist/types/components/ListItemLayout/index.d.ts.map +1 -0
- package/dist/types/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +1 -1
- package/dist/types/components/Message/MessageText.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMentionsHandler.d.ts +6 -1
- package/dist/types/components/Message/hooks/useMentionsHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMessageTextStreaming.d.ts +1 -1
- package/dist/types/components/Message/hooks/useReactionsFetcher.d.ts +1 -1
- package/dist/types/components/Message/hooks/useReactionsFetcher.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/componentRenderers/Mention.d.ts +22 -4
- package/dist/types/components/Message/renderText/componentRenderers/Mention.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts +44 -3
- package/dist/types/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts.map +1 -1
- package/dist/types/components/Message/renderText/renderText.d.ts +25 -3
- package/dist/types/components/Message/renderText/renderText.d.ts.map +1 -1
- package/dist/types/components/Message/types.d.ts +2 -3
- package/dist/types/components/Message/types.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/QuotedMessagePreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerController.d.ts.map +1 -1
- package/dist/types/components/Modal/GlobalModal.d.ts +3 -1
- package/dist/types/components/Modal/GlobalModal.d.ts.map +1 -1
- package/dist/types/components/Notifications/hooks/useNotificationApi.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/MultipleAnswersField.d.ts.map +1 -1
- package/dist/types/components/Poll/PollOptionSelector.d.ts +0 -4
- package/dist/types/components/Poll/PollOptionSelector.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.d.ts +5 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.d.ts +17 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/MentionItem.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.d.ts +6 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/MentionSuggestionTitle.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.d.ts +5 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.d.ts +10 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/SpecialMentionItem.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.d.ts +5 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/UserItem.d.ts +17 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/UserItem.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/index.d.ts +8 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/index.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/types.d.ts +6 -0
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/types.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/SuggestionList.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts +2 -2
- package/dist/types/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.d.ts +9 -0
- package/dist/types/components/TextareaComposer/SuggestionList/TokenizedSuggestionParts.d.ts.map +1 -0
- package/dist/types/components/TextareaComposer/SuggestionList/index.d.ts +2 -1
- package/dist/types/components/TextareaComposer/SuggestionList/index.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/TextareaComposer.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/context/DialogManagerContext.d.ts +3 -1
- package/dist/types/context/DialogManagerContext.d.ts.map +1 -1
- package/dist/types/context/MessageContext.d.ts +3 -3
- package/dist/types/context/MessageContext.d.ts.map +1 -1
- package/dist/types/i18n/Streami18n.d.ts +105 -1
- package/dist/types/i18n/Streami18n.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/AvatarWithChannelDetail.d.ts +9 -0
- package/dist/types/plugins/ChannelDetail/AvatarWithChannelDetail.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetail.d.ts +14 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetail.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailContext.d.ts +11 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailContext.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailEmptyList.d.ts +3 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailEmptyList.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.d.ts +6 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailListLoadingIndicator.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailNavButton.d.ts +15 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailNavButton.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailSearchInput.d.ts +8 -0
- package/dist/types/plugins/ChannelDetail/ChannelDetailSearchInput.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/SectionNavigator/SectionNavigator.d.ts +52 -0
- package/dist/types/plugins/ChannelDetail/SectionNavigator/SectionNavigator.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.d.ts +11 -0
- package/dist/types/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/SectionNavigator/index.d.ts +3 -0
- package/dist/types/plugins/ChannelDetail/SectionNavigator/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.d.ts +2 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.d.ts +5 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.d.ts +40 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/index.d.ts +5 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.d.ts +10 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.d.ts +16 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.d.ts +20 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/index.d.ts +3 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.d.ts +2 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.d.ts +8 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.d.ts +22 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/index.d.ts +5 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.d.ts +9 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.d.ts +26 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.d.ts +12 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/index.d.ts +3 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.d.ts +7 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.d.ts +6 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.d.ts +45 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.d.ts +46 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.d.ts +8 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/index.d.ts +6 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.d.ts +4 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberCount.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.d.ts +4 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMemberIds.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.d.ts +12 -0
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/useChannelMembersSearch.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.d.ts +2 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.d.ts +9 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/index.d.ts +4 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.d.ts +4 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.d.ts +16 -0
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/VirtualizedList/VirtualizedList.d.ts +28 -0
- package/dist/types/plugins/ChannelDetail/VirtualizedList/VirtualizedList.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/VirtualizedList/index.d.ts +2 -0
- package/dist/types/plugins/ChannelDetail/VirtualizedList/index.d.ts.map +1 -0
- package/dist/types/plugins/ChannelDetail/index.d.ts +16 -0
- package/dist/types/plugins/ChannelDetail/index.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/isDmChannel.d.ts +6 -0
- package/dist/types/utils/isDmChannel.d.ts.map +1 -0
- package/package.json +13 -4
- package/dist/cjs/useNotificationApi.9ffe5761.js.map +0 -1
- package/dist/es/useNotificationApi.88c33caa.mjs.map +0 -1
- package/dist/types/components/TextareaComposer/SuggestionList/UserItem.d.ts +0 -25
- package/dist/types/components/TextareaComposer/SuggestionList/UserItem.d.ts.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { L as useLegacyThreadContext, Lr as useStateStore, Wr as useChatContext, g as useThreadContext, qr as useChannelStateContext } from "./useNotificationApi.fa5cddf9.mjs";
|
|
2
|
+
import { createContext, useContext, useEffect, useMemo } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { MessageComposer } from "stream-chat";
|
|
5
|
+
//#region src/context/MessageComposerContext.tsx
|
|
6
|
+
var MessageComposerContext = createContext(void 0);
|
|
7
|
+
var MessageComposerContextProvider = ({ children, value }) => /* @__PURE__ */ jsx(MessageComposerContext.Provider, {
|
|
8
|
+
value,
|
|
9
|
+
children
|
|
10
|
+
});
|
|
11
|
+
var useMessageComposerContext = (componentName) => {
|
|
12
|
+
const contextValue = useContext(MessageComposerContext);
|
|
13
|
+
if (!contextValue) return {};
|
|
14
|
+
return contextValue;
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/components/MessageComposer/hooks/useIsCooldownActive.ts
|
|
18
|
+
var cooldownTimerStateSelector = (state) => ({ isCooldownActive: !!state.cooldownRemaining });
|
|
19
|
+
var useIsCooldownActive = () => {
|
|
20
|
+
const { channel } = useChannelStateContext();
|
|
21
|
+
return useStateStore(channel.cooldownTimer.state, cooldownTimerStateSelector).isCooldownActive;
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/components/MessageComposer/hooks/useMessageComposerController.ts
|
|
25
|
+
var useMessageComposerController = () => {
|
|
26
|
+
const { client } = useChatContext();
|
|
27
|
+
const { messageComposerCache: queueCache } = client;
|
|
28
|
+
const { channel } = useChannelStateContext();
|
|
29
|
+
const { legacyThread: parentMessage } = useLegacyThreadContext();
|
|
30
|
+
const threadInstance = useThreadContext();
|
|
31
|
+
const cachedParentMessage = useMemo(() => {
|
|
32
|
+
if (!parentMessage) return void 0;
|
|
33
|
+
return parentMessage;
|
|
34
|
+
}, [parentMessage?.id]);
|
|
35
|
+
const messageComposer = useMemo(() => {
|
|
36
|
+
if (threadInstance) return threadInstance.messageComposer;
|
|
37
|
+
else if (cachedParentMessage) {
|
|
38
|
+
const compositionContext = {
|
|
39
|
+
...cachedParentMessage,
|
|
40
|
+
legacyThreadId: cachedParentMessage.id
|
|
41
|
+
};
|
|
42
|
+
const tag = MessageComposer.constructTag(compositionContext);
|
|
43
|
+
const cachedComposer = queueCache.get(tag);
|
|
44
|
+
if (cachedComposer) return cachedComposer;
|
|
45
|
+
return new MessageComposer({
|
|
46
|
+
client,
|
|
47
|
+
compositionContext
|
|
48
|
+
});
|
|
49
|
+
} else return channel.messageComposer;
|
|
50
|
+
}, [
|
|
51
|
+
cachedParentMessage,
|
|
52
|
+
channel,
|
|
53
|
+
client,
|
|
54
|
+
queueCache,
|
|
55
|
+
threadInstance
|
|
56
|
+
]);
|
|
57
|
+
if (["legacy_thread", "message"].includes(messageComposer.contextType) && !queueCache.peek(messageComposer.tag)) queueCache.add(messageComposer.tag, messageComposer);
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
const unsubscribe = messageComposer.registerSubscriptions();
|
|
60
|
+
return () => {
|
|
61
|
+
unsubscribe();
|
|
62
|
+
};
|
|
63
|
+
}, [messageComposer]);
|
|
64
|
+
return messageComposer;
|
|
65
|
+
};
|
|
66
|
+
//#endregion
|
|
67
|
+
export { useMessageComposerContext as a, MessageComposerContextProvider as i, useIsCooldownActive as n, MessageComposerContext as r, useMessageComposerController as t };
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=useMessageComposerController.29f189b4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMessageComposerController.29f189b4.mjs","names":[],"sources":["../../src/context/MessageComposerContext.tsx","../../src/components/MessageComposer/hooks/useIsCooldownActive.ts","../../src/components/MessageComposer/hooks/useMessageComposerController.ts"],"sourcesContent":["import React, { createContext, useContext } from 'react';\nimport type { PropsWithChildren } from 'react';\n\nimport type { MessageComposerProps } from '../components/MessageComposer';\nimport type { UseMessageComposerBindingsParams } from '../components/MessageComposer/hooks/useMessageComposerBindings';\n\nexport type MessageComposerContextValue = UseMessageComposerBindingsParams &\n Omit<MessageComposerProps, 'Input'>;\n\nexport const MessageComposerContext = createContext<\n UseMessageComposerBindingsParams | undefined\n>(undefined);\n\nexport const MessageComposerContextProvider = ({\n children,\n value,\n}: PropsWithChildren<{\n value: MessageComposerContextValue;\n}>) => (\n <MessageComposerContext.Provider\n value={value as unknown as MessageComposerContextValue}\n >\n {children}\n </MessageComposerContext.Provider>\n);\n\nexport const useMessageComposerContext = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentName?: string,\n) => {\n const contextValue = useContext(MessageComposerContext);\n\n if (!contextValue) {\n return {} as MessageComposerContextValue;\n }\n\n return contextValue as unknown as MessageComposerContextValue;\n};\n","import { useChannelStateContext } from '../../../context';\nimport { useStateStore } from '../../../store';\nimport type { CooldownTimerState } from 'stream-chat';\n\nconst cooldownTimerStateSelector = (state: CooldownTimerState) => ({\n isCooldownActive: !!state.cooldownRemaining,\n});\n\nexport const useIsCooldownActive = () => {\n const { channel } = useChannelStateContext();\n return useStateStore(channel.cooldownTimer.state, cooldownTimerStateSelector)\n .isCooldownActive;\n};\n","import { useEffect, useMemo } from 'react';\nimport { MessageComposer as MessageComposerController } from 'stream-chat';\nimport { useThreadContext } from '../../Threads';\nimport { useChannelStateContext, useChatContext } from '../../../context';\nimport { useLegacyThreadContext } from '../../Thread';\n\nexport const useMessageComposerController = () => {\n const { client } = useChatContext();\n const { messageComposerCache: queueCache } = client;\n const { channel } = useChannelStateContext();\n const { legacyThread: parentMessage } = useLegacyThreadContext();\n const threadInstance = useThreadContext();\n\n const cachedParentMessage = useMemo(() => {\n if (!parentMessage) return undefined;\n\n return parentMessage;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [parentMessage?.id]);\n\n // composer hierarchy\n // edited message (always new) -> thread instance (own) -> thread message (always new) -> channel (own)\n // editedMessage ?? thread ?? parentMessage ?? channel;\n const messageComposer = useMemo(() => {\n if (threadInstance) {\n return threadInstance.messageComposer;\n } else if (cachedParentMessage) {\n const compositionContext = {\n ...cachedParentMessage,\n legacyThreadId: cachedParentMessage.id,\n };\n\n const tag = MessageComposerController.constructTag(compositionContext);\n\n const cachedComposer = queueCache.get(tag);\n if (cachedComposer) return cachedComposer;\n\n return new MessageComposerController({\n client,\n compositionContext,\n });\n } else {\n return channel.messageComposer;\n }\n }, [cachedParentMessage, channel, client, queueCache, threadInstance]);\n\n if (\n (['legacy_thread', 'message'] as MessageComposerController['contextType'][]).includes(\n messageComposer.contextType,\n ) &&\n !queueCache.peek(messageComposer.tag)\n ) {\n queueCache.add(messageComposer.tag, messageComposer);\n }\n\n useEffect(() => {\n const unsubscribe = messageComposer.registerSubscriptions();\n return () => {\n unsubscribe();\n };\n }, [messageComposer]);\n\n return messageComposer;\n};\n"],"mappings":";;;;;AASA,IAAa,yBAAyB,cAEpC,KAAA,CAAS;AAEX,IAAa,kCAAkC,EAC7C,UACA,YAIA,oBAAC,uBAAuB,UAAxB;CACS;CAEN;AAC8B,CAAA;AAGnC,IAAa,6BAEX,kBACG;CACH,MAAM,eAAe,WAAW,sBAAsB;CAEtD,IAAI,CAAC,cACH,OAAO,CAAC;CAGV,OAAO;AACT;;;ACjCA,IAAM,8BAA8B,WAA+B,EACjE,kBAAkB,CAAC,CAAC,MAAM,kBAC5B;AAEA,IAAa,4BAA4B;CACvC,MAAM,EAAE,YAAY,uBAAuB;CAC3C,OAAO,cAAc,QAAQ,cAAc,OAAO,0BAA0B,EACzE;AACL;;;ACNA,IAAa,qCAAqC;CAChD,MAAM,EAAE,WAAW,eAAe;CAClC,MAAM,EAAE,sBAAsB,eAAe;CAC7C,MAAM,EAAE,YAAY,uBAAuB;CAC3C,MAAM,EAAE,cAAc,kBAAkB,uBAAuB;CAC/D,MAAM,iBAAiB,iBAAiB;CAExC,MAAM,sBAAsB,cAAc;EACxC,IAAI,CAAC,eAAe,OAAO,KAAA;EAE3B,OAAO;CAET,GAAG,CAAC,eAAe,EAAE,CAAC;CAKtB,MAAM,kBAAkB,cAAc;EACpC,IAAI,gBACF,OAAO,eAAe;OACjB,IAAI,qBAAqB;GAC9B,MAAM,qBAAqB;IACzB,GAAG;IACH,gBAAgB,oBAAoB;GACtC;GAEA,MAAM,MAAM,gBAA0B,aAAa,kBAAkB;GAErE,MAAM,iBAAiB,WAAW,IAAI,GAAG;GACzC,IAAI,gBAAgB,OAAO;GAE3B,OAAO,IAAI,gBAA0B;IACnC;IACA;GACF,CAAC;EACH,OACE,OAAO,QAAQ;CAEnB,GAAG;EAAC;EAAqB;EAAS;EAAQ;EAAY;CAAc,CAAC;CAErE,IACG,CAAC,iBAAiB,SAAS,EAAiD,SAC3E,gBAAgB,WAClB,KACA,CAAC,WAAW,KAAK,gBAAgB,GAAG,GAEpC,WAAW,IAAI,gBAAgB,KAAK,eAAe;CAGrD,gBAAgB;EACd,MAAM,cAAc,gBAAgB,sBAAsB;EAC1D,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,eAAe,CAAC;CAEpB,OAAO;AACT"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import React, { createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
|
|
2
2
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ErrorFromResponse,
|
|
3
|
+
import { ErrorFromResponse, StateStore, localMessageToNewMessagePayload } from "stream-chat";
|
|
4
4
|
import { nanoid } from "nanoid";
|
|
5
|
+
import clsx from "clsx";
|
|
5
6
|
import { useSyncExternalStore } from "use-sync-external-store/shim";
|
|
6
7
|
import { createPortal } from "react-dom";
|
|
7
8
|
import Dayjs from "dayjs";
|
|
8
9
|
import calendar from "dayjs/plugin/calendar";
|
|
9
|
-
import
|
|
10
|
-
import clsx from "clsx";
|
|
11
|
-
import { autoPlacement, autoUpdate, flip, offset, shift, size, useFloating } from "@floating-ui/react";
|
|
10
|
+
import localizedFormat from "dayjs/plugin/localizedFormat";
|
|
12
11
|
import debounce from "lodash.debounce";
|
|
13
12
|
import throttle from "lodash.throttle";
|
|
14
13
|
import deepequal from "react-fast-compare";
|
|
15
14
|
import emojiRegex from "emoji-regex";
|
|
15
|
+
import { autoPlacement, autoUpdate, flip, offset, shift, size, useFloating } from "@floating-ui/react";
|
|
16
16
|
import * as linkify from "linkifyjs";
|
|
17
17
|
//#region src/context/ChannelActionContext.tsx
|
|
18
18
|
var ChannelActionContext = React.createContext(void 0);
|
|
@@ -338,7 +338,7 @@ var Portal = ({ children, getPortalDestination, isOpen }) => {
|
|
|
338
338
|
//#endregion
|
|
339
339
|
//#region src/components/Dialog/service/DialogPortal.tsx
|
|
340
340
|
var shouldCloseOnOutsideClick = ({ dialog, managerCloseOnClickOutside }) => dialog.closeOnClickOutside ?? managerCloseOnClickOutside;
|
|
341
|
-
var DialogPortalDestination = () => {
|
|
341
|
+
var DialogPortalDestination = ({ captureOutsideClicks, className }) => {
|
|
342
342
|
const { dialogManager } = useNearestDialogManagerContext() ?? {};
|
|
343
343
|
const openedDialogCount = useOpenedDialogCount({ dialogManagerId: dialogManager?.id });
|
|
344
344
|
const [destinationRoot, setDestinationRoot] = useState(null);
|
|
@@ -367,7 +367,10 @@ var DialogPortalDestination = () => {
|
|
|
367
367
|
}, [destinationRoot, dialogManager]);
|
|
368
368
|
if (!openedDialogCount) return null;
|
|
369
369
|
return /* @__PURE__ */ jsx("div", {
|
|
370
|
-
className: "str-chat__dialog-overlay",
|
|
370
|
+
className: clsx("str-chat__dialog-overlay", {
|
|
371
|
+
"str-chat__dialog-overlay--modal": dialogManager?.id === modalDialogManagerId,
|
|
372
|
+
"str-chat__dialog-overlay--with-outside-click-capture": captureOutsideClicks
|
|
373
|
+
}, className),
|
|
371
374
|
"data-str-chat__portal-id": dialogManager?.id,
|
|
372
375
|
"data-testid": "str-chat__dialog-overlay",
|
|
373
376
|
ref: setDestinationRoot,
|
|
@@ -409,7 +412,7 @@ var DialogManagerProviderContext = React.createContext(void 0);
|
|
|
409
412
|
/**
|
|
410
413
|
* Creates/provides a dialog manager and its portal destination.
|
|
411
414
|
*/
|
|
412
|
-
var DialogManagerProvider = ({ children, closeOnClickOutside, id }) => {
|
|
415
|
+
var DialogManagerProvider = ({ children, closeOnClickOutside, id, portalDestinationProps }) => {
|
|
413
416
|
const [dialogManager, setDialogManager] = useState(() => {
|
|
414
417
|
if (id) return getDialogManager(id) ?? null;
|
|
415
418
|
return new DialogManager({ closeOnClickOutside });
|
|
@@ -428,7 +431,7 @@ var DialogManagerProvider = ({ children, closeOnClickOutside, id }) => {
|
|
|
428
431
|
if (!dialogManager) return null;
|
|
429
432
|
return /* @__PURE__ */ jsxs(DialogManagerProviderContext.Provider, {
|
|
430
433
|
value: { dialogManager },
|
|
431
|
-
children: [children, /* @__PURE__ */ jsx(DialogPortalDestination, {})]
|
|
434
|
+
children: [children, /* @__PURE__ */ jsx(DialogPortalDestination, { ...portalDestinationProps })]
|
|
432
435
|
});
|
|
433
436
|
};
|
|
434
437
|
var getManagerFromStore = ({ dialogId, dialogManagerId, newState, previousState }) => {
|
|
@@ -498,18 +501,6 @@ var ModalDialogManagerProvider = ({ children }) => /* @__PURE__ */ jsx(DialogMan
|
|
|
498
501
|
var useModalDialogManager = () => useMemo(() => getDialogManager(modalDialogManagerId), []);
|
|
499
502
|
var useNearestDialogManagerContext = () => useContext(DialogManagerProviderContext);
|
|
500
503
|
//#endregion
|
|
501
|
-
//#region src/context/MessageComposerContext.tsx
|
|
502
|
-
var MessageComposerContext = createContext(void 0);
|
|
503
|
-
var MessageComposerContextProvider = ({ children, value }) => /* @__PURE__ */ jsx(MessageComposerContext.Provider, {
|
|
504
|
-
value,
|
|
505
|
-
children
|
|
506
|
-
});
|
|
507
|
-
var useMessageComposerContext = (componentName) => {
|
|
508
|
-
const contextValue = useContext(MessageComposerContext);
|
|
509
|
-
if (!contextValue) return {};
|
|
510
|
-
return contextValue;
|
|
511
|
-
};
|
|
512
|
-
//#endregion
|
|
513
504
|
//#region src/i18n/utils.ts
|
|
514
505
|
var isNumberOrString = (output) => typeof output === "string" || typeof output === "number";
|
|
515
506
|
var isDayOrMoment = (output) => !!output?.isSame;
|
|
@@ -640,7 +631,7 @@ var isLanguageSupported = (language) => {
|
|
|
640
631
|
//#endregion
|
|
641
632
|
//#region src/context/TranslationContext.tsx
|
|
642
633
|
Dayjs.extend(calendar);
|
|
643
|
-
Dayjs.extend(
|
|
634
|
+
Dayjs.extend(localizedFormat);
|
|
644
635
|
var TranslationContext = React.createContext({
|
|
645
636
|
t: defaultTranslatorFunction,
|
|
646
637
|
tDateTimeParser: defaultDateTimeParser,
|
|
@@ -709,50 +700,20 @@ var isNotificationForPanel = (notification, panel, options) => {
|
|
|
709
700
|
return (options?.fallbackPanel ?? "channel") === panel;
|
|
710
701
|
};
|
|
711
702
|
//#endregion
|
|
712
|
-
//#region src/components/
|
|
713
|
-
var
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
}
|
|
727
|
-
if (typeof opt === "number") return offset(opt);
|
|
728
|
-
return offset(opt);
|
|
729
|
-
}
|
|
730
|
-
function usePopoverPosition({ allowFlip = true, allowShift = true, autoUpdateOptions, fitAvailableSpace = false, freeze = false, offset, placement = "bottom-start", shiftOptions }) {
|
|
731
|
-
const autoMw = autoMiddlewareFor(placement);
|
|
732
|
-
const offsetMiddleware = toOffsetMw(offset);
|
|
733
|
-
const isSidePlacement = placement.startsWith("left") || placement.startsWith("right");
|
|
734
|
-
const mergedShiftOptions = shiftOptions ? {
|
|
735
|
-
padding: 8,
|
|
736
|
-
...shiftOptions
|
|
737
|
-
} : { padding: 8 };
|
|
738
|
-
return useFloating({
|
|
739
|
-
middleware: [
|
|
740
|
-
...offsetMiddleware ? [offsetMiddleware] : [],
|
|
741
|
-
...autoMw ? [autoMw] : allowFlip && !isSidePlacement ? [flip()] : [],
|
|
742
|
-
...allowShift ? [shift(mergedShiftOptions)] : [],
|
|
743
|
-
...fitAvailableSpace ? [size({ apply: () => {} })] : []
|
|
744
|
-
],
|
|
745
|
-
placement: String(placement).startsWith("auto") ? "bottom" : placement,
|
|
746
|
-
strategy: "fixed",
|
|
747
|
-
whileElementsMounted: freeze ? void 0 : (reference, floating, update) => autoUpdate(reference, floating, update, {
|
|
748
|
-
ancestorResize: true,
|
|
749
|
-
ancestorScroll: true,
|
|
750
|
-
animationFrame: false,
|
|
751
|
-
elementResize: hasResizeObserver,
|
|
752
|
-
...autoUpdateOptions
|
|
753
|
-
})
|
|
754
|
-
});
|
|
755
|
-
}
|
|
703
|
+
//#region src/components/UtilityComponents/useStableId.ts
|
|
704
|
+
var reactUseId = React.useId;
|
|
705
|
+
var stripUseIdWrappers = (id) => id.replace(/[:«»]/g, "");
|
|
706
|
+
/**
|
|
707
|
+
* Returns a stable, unique string id.
|
|
708
|
+
*
|
|
709
|
+
* On React 18+ this delegates to `React.useId()` (with the surrounding wrapper
|
|
710
|
+
* characters stripped so the value is safe to use anywhere an HTML id is expected)
|
|
711
|
+
* and is SSR-stable. On React 17, it falls back to a client-only id generated via `nanoid`.
|
|
712
|
+
*/
|
|
713
|
+
var useStableId = () => {
|
|
714
|
+
if (reactUseId) return stripUseIdWrappers(reactUseId());
|
|
715
|
+
return useMemo(() => nanoid(), []);
|
|
716
|
+
};
|
|
756
717
|
//#endregion
|
|
757
718
|
//#region src/components/Button/Button.tsx
|
|
758
719
|
var variantToClass = {
|
|
@@ -1089,6 +1050,14 @@ var IconMore = createIcon("IconMore", /* @__PURE__ */ jsxs(Fragment$1, { childre
|
|
|
1089
1050
|
/* @__PURE__ */ jsx("path", { d: "M4.6875 11.25C5.37786 11.25 5.9375 10.6904 5.9375 10C5.9375 9.30964 5.37786 8.75 4.6875 8.75C3.99714 8.75 3.4375 9.30964 3.4375 10C3.4375 10.6904 3.99714 11.25 4.6875 11.25Z" }),
|
|
1090
1051
|
/* @__PURE__ */ jsx("path", { d: "M15.3125 11.25C16.0029 11.25 16.5625 10.6904 16.5625 10C16.5625 9.30964 16.0029 8.75 15.3125 8.75C14.6221 8.75 14.0625 9.30964 14.0625 10C14.0625 10.6904 14.6221 11.25 15.3125 11.25Z" })
|
|
1091
1052
|
] }));
|
|
1053
|
+
var IconMenu = createIcon("IconMenu", /* @__PURE__ */ jsx("path", {
|
|
1054
|
+
d: "M3.125 5H16.875M3.125 10H16.875M3.125 15H16.875",
|
|
1055
|
+
fill: "none",
|
|
1056
|
+
stroke: "currentColor",
|
|
1057
|
+
strokeLinecap: "round",
|
|
1058
|
+
strokeLinejoin: "round",
|
|
1059
|
+
strokeWidth: "1.5"
|
|
1060
|
+
}));
|
|
1092
1061
|
var IconReorder = createIcon("IconReorder", /* @__PURE__ */ jsx("path", { d: "M8.875 15.3125C8.875 16.2445 8.11948 17 7.1875 17C6.25552 17 5.5 16.2445 5.5 15.3125C5.5 14.3805 6.25552 13.625 7.1875 13.625C8.11948 13.625 8.875 14.3805 8.875 15.3125ZM14.5 15.3125C14.5 16.2445 13.7445 17 12.8125 17C11.8805 17 11.125 16.2445 11.125 15.3125C11.125 14.3805 11.8805 13.625 12.8125 13.625C13.7445 13.625 14.5 14.3805 14.5 15.3125ZM8.875 10C8.875 10.932 8.11948 11.6875 7.1875 11.6875C6.25552 11.6875 5.5 10.932 5.5 10C5.5 9.06802 6.25552 8.3125 7.1875 8.3125C8.11948 8.3125 8.875 9.06802 8.875 10ZM14.5 10C14.5 10.932 13.7445 11.6875 12.8125 11.6875C11.8805 11.6875 11.125 10.932 11.125 10C11.125 9.06802 11.8805 8.3125 12.8125 8.3125C13.7445 8.3125 14.5 9.06802 14.5 10ZM8.875 4.6875C8.875 5.61948 8.11948 6.375 7.1875 6.375C6.25552 6.375 5.5 5.61948 5.5 4.6875C5.5 3.75552 6.25552 3 7.1875 3C8.11948 3 8.875 3.75552 8.875 4.6875ZM14.5 4.6875C14.5 5.61948 13.7445 6.375 12.8125 6.375C11.8805 6.375 11.125 5.61948 11.125 4.6875C11.125 3.75552 11.8805 3 12.8125 3C13.7445 3 14.5 3.75552 14.5 4.6875Z" }));
|
|
1093
1062
|
var IconChecks = createIcon("IconChecks", /* @__PURE__ */ jsx("path", {
|
|
1094
1063
|
d: "M1.5 10.5724L4.98387 13.9936L13.1129 6.00977M10.371 13.9936L18.5 6.00977",
|
|
@@ -1175,6 +1144,10 @@ var IconFlag = createIcon("IconFlag", /* @__PURE__ */ jsx("path", {
|
|
|
1175
1144
|
strokeLinejoin: "round",
|
|
1176
1145
|
strokeWidth: "1.5"
|
|
1177
1146
|
}));
|
|
1147
|
+
var IconFolder = createIcon("IconFolder", /* @__PURE__ */ jsx("path", {
|
|
1148
|
+
d: "M3.25 15.5H16.75V7H10C9.83774 7 9.67962 6.94696 9.5498 6.84961L7.25098 5.125H3.25V15.5ZM18.25 15.6943C18.25 16.0406 18.112 16.3724 17.8672 16.6172C17.6224 16.862 17.2906 17 16.9443 17H3.125C2.76033 17 2.41021 16.8555 2.15234 16.5977C1.89448 16.3398 1.75 15.9897 1.75 15.625V5C1.75 4.63533 1.89448 4.28521 2.15234 4.02734L2.25391 3.93652C2.49856 3.73611 2.80597 3.625 3.125 3.625H7.29102C7.58852 3.625 7.8782 3.72189 8.11621 3.90039L10.25 5.5H16.875C17.194 5.5 17.5014 5.61111 17.7461 5.81152L17.8477 5.90234L17.9385 6.00391C18.1389 6.24856 18.25 6.55597 18.25 6.875V15.6943Z",
|
|
1149
|
+
fill: "currentColor"
|
|
1150
|
+
}));
|
|
1178
1151
|
var IconImage = createIcon("IconImage", /* @__PURE__ */ jsx("path", {
|
|
1179
1152
|
d: "M4.42891 16.875L12.9953 8.30781C13.0534 8.2497 13.1223 8.2036 13.1982 8.17215C13.274 8.1407 13.3554 8.12451 13.4375 8.12451C13.5196 8.12451 13.601 8.1407 13.6768 8.17215C13.7527 8.2036 13.8216 8.2497 13.8797 8.30781L16.875 11.3039M3.75 3.125H16.25C16.5952 3.125 16.875 3.40482 16.875 3.75V16.25C16.875 16.5952 16.5952 16.875 16.25 16.875H3.75C3.40482 16.875 3.125 16.5952 3.125 16.25V3.75C3.125 3.40482 3.40482 3.125 3.75 3.125ZM8.75 7.5C8.75 8.19036 8.19036 8.75 7.5 8.75C6.80964 8.75 6.25 8.19036 6.25 7.5C6.25 6.80964 6.80964 6.25 7.5 6.25C8.19036 6.25 8.75 6.80964 8.75 7.5Z",
|
|
1180
1153
|
fill: "none",
|
|
@@ -1183,6 +1156,20 @@ var IconImage = createIcon("IconImage", /* @__PURE__ */ jsx("path", {
|
|
|
1183
1156
|
strokeLinejoin: "round",
|
|
1184
1157
|
strokeWidth: "1.5"
|
|
1185
1158
|
}));
|
|
1159
|
+
var IconInfo = createIcon("IconInfo", /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
1160
|
+
/* @__PURE__ */ jsx("path", {
|
|
1161
|
+
d: "M16.75 10C16.75 6.27208 13.7279 3.25 10 3.25C6.27208 3.25 3.25 6.27208 3.25 10C3.25 13.7279 6.27208 16.75 10 16.75C13.7279 16.75 16.75 13.7279 16.75 10ZM18.25 10C18.25 14.5563 14.5563 18.25 10 18.25C5.44365 18.25 1.75 14.5563 1.75 10C1.75 5.44365 5.44365 1.75 10 1.75C14.5563 1.75 18.25 5.44365 18.25 10Z",
|
|
1162
|
+
fill: "currentColor"
|
|
1163
|
+
}),
|
|
1164
|
+
/* @__PURE__ */ jsx("path", {
|
|
1165
|
+
d: "M10.75 13.0107C11.1047 13.0703 11.375 13.3784 11.375 13.75C11.375 14.1642 11.0392 14.5 10.625 14.5C10.2603 14.5 9.91021 14.3555 9.65234 14.0977C9.39448 13.8398 9.25 13.4897 9.25 13.125V10.1133C8.89539 10.0537 8.625 9.74655 8.625 9.375C8.625 8.96079 8.96079 8.625 9.375 8.625C9.69403 8.625 10.0014 8.73611 10.2461 8.93652L10.3477 9.02734L10.4385 9.12891C10.6389 9.37356 10.75 9.68097 10.75 10V13.0107Z",
|
|
1166
|
+
fill: "currentColor"
|
|
1167
|
+
}),
|
|
1168
|
+
/* @__PURE__ */ jsx("path", {
|
|
1169
|
+
d: "M9.6875 7.5C10.2053 7.5 10.625 7.08027 10.625 6.5625C10.625 6.04473 10.2053 5.625 9.6875 5.625C9.16973 5.625 8.75 6.04473 8.75 6.5625C8.75 7.08027 9.16973 7.5 9.6875 7.5Z",
|
|
1170
|
+
fill: "currentColor"
|
|
1171
|
+
})
|
|
1172
|
+
] }));
|
|
1186
1173
|
var IconSearch = createIcon("IconSearch", /* @__PURE__ */ jsx("path", {
|
|
1187
1174
|
d: "M13.1695 13.1695L17.5 17.5M15 8.75C15 12.2018 12.2018 15 8.75 15C5.29822 15 2.5 12.2018 2.5 8.75C2.5 5.29822 5.29822 2.5 8.75 2.5C12.2018 2.5 15 5.29822 15 8.75Z",
|
|
1188
1175
|
fill: "none",
|
|
@@ -1226,6 +1213,10 @@ var IconMute = createIcon("IconMute", /* @__PURE__ */ jsx("path", {
|
|
|
1226
1213
|
strokeLinejoin: "round",
|
|
1227
1214
|
strokeWidth: "1.5"
|
|
1228
1215
|
}), { "data-rtl-mirror": "" });
|
|
1216
|
+
var IconMegaphone = createIcon("IconMegaphone", /* @__PURE__ */ jsx("path", {
|
|
1217
|
+
d: "M18 9.375C18 8.74513 17.7501 8.1407 17.3047 7.69531C16.8593 7.24993 16.2549 7 15.625 7H13.25V11.75H15.625C16.2549 11.75 16.8593 11.5001 17.3047 11.0547C17.7501 10.6093 18 10.0049 18 9.375ZM13.25 15.6094L13.9072 16.0479L14.6504 13.25H13.25V15.6094ZM3.875 15.3613C5.95015 13.6742 8.04776 12.7734 9.64648 12.2949C10.4722 12.0478 11.1671 11.9129 11.6602 11.8389C11.6909 11.8343 11.7209 11.8303 11.75 11.8262V6.92383C11.7209 6.91969 11.6908 6.91671 11.6602 6.91211C11.1671 6.83809 10.4722 6.70218 9.64648 6.45508C8.04766 5.97662 5.95031 5.0757 3.875 3.38867V15.3613ZM19.5 9.375C19.5 10.4027 19.0919 11.3885 18.3652 12.1152C17.7786 12.7019 17.023 13.0807 16.2129 13.2051L15.3174 16.5811L15.3184 16.582C15.2651 16.7957 15.1613 16.994 15.0156 17.1592C14.8698 17.3244 14.686 17.4527 14.4805 17.5322C14.2749 17.6118 14.0531 17.6403 13.834 17.6162C13.615 17.5921 13.405 17.5158 13.2217 17.3936L12.3623 16.8213C12.1743 16.6958 12.0198 16.5254 11.9131 16.3262C11.8064 16.1268 11.7501 15.9039 11.75 15.6777V13.3428C11.3266 13.4117 10.752 13.5301 10.0762 13.7324C8.57696 14.1812 6.58735 15.0397 4.63477 16.6777L4.63379 16.6768C4.43352 16.845 4.18997 16.9539 3.93066 16.9883C3.67115 17.0227 3.40727 16.9816 3.16992 16.8711C2.93257 16.7606 2.73161 16.585 2.59082 16.3643C2.45002 16.1435 2.37506 15.8869 2.375 15.625V3.12402L2.38867 2.92871C2.41659 2.73605 2.48617 2.55103 2.5918 2.38574C2.73273 2.16523 2.93357 1.98918 3.1709 1.87891L3.35352 1.80957C3.47774 1.77216 3.6066 1.75227 3.73633 1.75098L3.93164 1.7627L4.12207 1.80273C4.30947 1.85543 4.48363 1.94804 4.63379 2.07422L4.63477 2.07324C6.58731 3.71082 8.57697 4.5689 10.0762 5.01758C10.8255 5.24183 11.4504 5.3638 11.8828 5.42871C12.0986 5.46111 12.2662 5.47917 12.377 5.48926C12.432 5.49427 12.4732 5.49735 12.499 5.49902C12.5118 5.49984 12.5213 5.49973 12.5264 5.5H15.625C16.6527 5.5 17.6385 5.90808 18.3652 6.63477C19.0919 7.36146 19.5 8.3473 19.5 9.375Z",
|
|
1218
|
+
fill: "currentColor"
|
|
1219
|
+
}));
|
|
1229
1220
|
var IconSend = createIcon("IconSend", /* @__PURE__ */ jsx("path", {
|
|
1230
1221
|
d: "M11.2498 10H6.24982M6.24982 10L3.7881 2.71328C3.74537 2.59349 3.7402 2.4635 3.7733 2.34069C3.80639 2.21788 3.87616 2.10808 3.9733 2.02597C4.07044 1.94386 4.19032 1.89335 4.31693 1.88117C4.44353 1.86899 4.57084 1.89573 4.68185 1.95781L17.8069 9.4461C17.9045 9.50015 17.986 9.57937 18.0427 9.67555C18.0994 9.77172 18.1293 9.88133 18.1293 9.99297C18.1293 10.1046 18.0994 10.2142 18.0427 10.3104C17.986 10.4066 17.9045 10.4858 17.8069 10.5398L4.68185 18.0469C4.57051 18.1096 4.4426 18.1367 4.31537 18.1245C4.18815 18.1123 4.06772 18.0614 3.97032 17.9787C3.87292 17.8959 3.80323 17.7853 3.77065 17.6617C3.73807 17.5381 3.74416 17.4075 3.7881 17.2875L6.24982 10Z",
|
|
1231
1222
|
fill: "none",
|
|
@@ -1234,6 +1225,10 @@ var IconSend = createIcon("IconSend", /* @__PURE__ */ jsx("path", {
|
|
|
1234
1225
|
strokeLinejoin: "round",
|
|
1235
1226
|
strokeWidth: "1.5"
|
|
1236
1227
|
}), { "data-rtl-mirror": "" });
|
|
1228
|
+
var IconShield = createIcon("IconShield", /* @__PURE__ */ jsx("path", {
|
|
1229
|
+
d: "M10.1973 18.8486C10.0681 18.8838 9.93188 18.8838 9.80273 18.8486L10 18.125L10.1973 18.8486ZM16.125 4.5H3.875V8.75C3.875 12.2327 5.45678 14.3769 7.03711 15.6699C7.83473 16.3225 8.63551 16.7591 9.23633 17.0322C9.53582 17.1683 9.7837 17.2629 9.95312 17.3223C9.96932 17.3279 9.98528 17.3319 10 17.3369C10.0147 17.3319 10.0307 17.3279 10.0469 17.3223C10.2163 17.2629 10.4642 17.1683 10.7637 17.0322C11.3645 16.7591 12.1653 16.3225 12.9629 15.6699C14.5432 14.3769 16.125 12.2327 16.125 8.75V4.5ZM17.625 8.75C17.625 12.7673 15.7693 15.3106 13.9121 16.8301C12.9911 17.5837 12.073 18.0846 11.3848 18.3975C11.04 18.5542 10.7504 18.6649 10.5439 18.7373C10.4407 18.7735 10.3576 18.8002 10.2988 18.8184C10.2694 18.8274 10.2455 18.8349 10.2285 18.8398L10.2012 18.8477H10.1992L10.1982 18.8486L10 18.125L9.80176 18.8486L9.80078 18.8477H9.79883L9.77148 18.8398C9.75446 18.8349 9.73058 18.8274 9.70117 18.8184C9.64239 18.8002 9.55926 18.7735 9.45605 18.7373C9.24957 18.6649 8.95996 18.5542 8.61523 18.3975C7.92702 18.0846 7.00893 17.5837 6.08789 16.8301C4.23072 15.3106 2.375 12.7673 2.375 8.75V4.375C2.375 4.01033 2.51948 3.66021 2.77734 3.40234L2.87891 3.31152C3.12356 3.11111 3.43097 3 3.75 3H16.25C16.569 3 16.8764 3.11111 17.1211 3.31152L17.2227 3.40234L17.3135 3.50391C17.5139 3.74856 17.625 4.05597 17.625 4.375V8.75Z",
|
|
1230
|
+
fill: "currentColor"
|
|
1231
|
+
}));
|
|
1237
1232
|
var IconAttachment = createIcon("IconAttachment", /* @__PURE__ */ jsx("path", {
|
|
1238
1233
|
d: "M12.4999 6.24998L5.9913 12.8664C5.76258 13.102 5.63576 13.4181 5.63823 13.7465C5.6407 14.0748 5.77227 14.389 6.00451 14.6211C6.23674 14.8533 6.55099 14.9847 6.87934 14.987C7.20769 14.9894 7.52376 14.8624 7.75927 14.6336L15.5179 6.76795C15.9868 6.29905 16.2502 5.6631 16.2502 4.99998C16.2502 4.33686 15.9868 3.70091 15.5179 3.23201C15.049 2.76312 14.413 2.49969 13.7499 2.49969C13.0868 2.49969 12.4508 2.76312 11.9819 3.23201L4.22333 11.0984C3.52953 11.8036 3.14249 12.7544 3.14652 13.7437C3.15054 14.7329 3.54531 15.6805 4.24483 16.38C4.94435 17.0796 5.89195 17.4743 6.88121 17.4784C7.87048 17.4824 8.82126 17.0953 9.52645 16.4015L15.9374 9.99998",
|
|
1239
1234
|
fill: "none",
|
|
@@ -1251,6 +1246,10 @@ var IconUser = createIcon("IconUser", /* @__PURE__ */ jsx("path", {
|
|
|
1251
1246
|
strokeLinejoin: "round",
|
|
1252
1247
|
strokeWidth: "1.5"
|
|
1253
1248
|
}));
|
|
1249
|
+
var IconUsers = createIcon("IconUsers", /* @__PURE__ */ jsx("path", {
|
|
1250
|
+
d: "M9.87527 8.4375C9.87527 6.60819 8.39203 5.12521 6.56277 5.125C4.73332 5.125 3.25027 6.60806 3.25027 8.4375C3.25027 10.2547 4.71313 11.7293 6.52566 11.749C6.5379 11.749 6.55052 11.748 6.56277 11.748C6.57481 11.7481 6.58686 11.749 6.5989 11.749C8.41151 11.7294 9.87527 10.2548 9.87527 8.4375ZM13.7249 3.63379C14.4323 3.67666 15.1216 3.8757 15.7434 4.21582C16.3651 4.55594 16.9039 5.02905 17.3216 5.60157C17.7392 6.17405 18.0254 6.83152 18.1594 7.52735C18.2934 8.22317 18.2721 8.94034 18.0969 9.62696C17.9217 10.3136 17.5968 10.9534 17.1458 11.5C16.8952 11.8037 16.6079 12.073 16.2932 12.3057C16.559 12.413 16.8201 12.5335 17.0735 12.6709C18.1898 13.2762 19.1371 14.1512 19.8294 15.2158C20.0551 15.5631 19.9569 16.0281 19.6096 16.2539C19.2624 16.4797 18.7974 16.3814 18.5716 16.0342C18.0157 15.1792 17.2551 14.4764 16.3587 13.9902C15.462 13.5041 14.4577 13.2494 13.4378 13.25C13.0238 13.2502 12.6883 12.9149 12.6878 12.501C12.6875 12.1128 12.9817 11.7928 13.3596 11.7539L13.4368 11.75L13.6194 11.7451C14.0444 11.7213 14.4619 11.6157 14.8479 11.4336C15.2889 11.2255 15.6782 10.922 15.9885 10.5459C16.299 10.1697 16.5232 9.72944 16.6438 9.25684C16.7644 8.78425 16.779 8.29047 16.6868 7.81153C16.5946 7.33249 16.3971 6.87947 16.1096 6.48535C15.8222 6.09134 15.4516 5.76533 15.0237 5.53125C14.5957 5.29714 14.121 5.16037 13.6341 5.13086C13.1471 5.10137 12.6594 5.17964 12.2063 5.36035C11.8217 5.51366 11.3852 5.3269 11.2317 4.94239C11.0783 4.55776 11.2662 4.12136 11.6507 3.96778C12.309 3.70521 13.0174 3.59093 13.7249 3.63379ZM11.3753 8.4375C11.3753 10.024 10.6063 11.43 9.42214 12.3066C9.68664 12.4137 9.94634 12.5341 10.1985 12.6709C11.3147 13.2764 12.262 14.1513 12.9544 15.2158C13.1802 15.5631 13.0819 16.0281 12.7346 16.2539C12.3874 16.4797 11.9224 16.3814 11.6966 16.0342C11.1404 15.179 10.3794 14.4757 9.48269 13.9893C8.59628 13.5085 7.60498 13.2547 6.59695 13.249C6.58556 13.2491 6.57417 13.25 6.56277 13.25C6.55117 13.25 6.53919 13.2491 6.52761 13.249C5.51958 13.2547 4.52826 13.5085 3.64187 13.9893C2.7452 14.4757 1.98418 15.179 1.428 16.0342C1.20214 16.3813 0.737113 16.4797 0.389915 16.2539C0.0427651 16.028 -0.0556256 15.563 0.170188 15.2158C0.862547 14.1513 1.80989 13.2765 2.92605 12.6709C3.1779 12.5343 3.43728 12.4136 3.70144 12.3066C2.51771 11.4299 1.75027 10.0237 1.75027 8.4375C1.75027 5.77963 3.9049 3.625 6.56277 3.625C9.22046 3.62521 11.3753 5.77976 11.3753 8.4375Z",
|
|
1251
|
+
fill: "currentColor"
|
|
1252
|
+
}));
|
|
1254
1253
|
var IconUserAdd = createIcon("IconUserAdd", /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("g", {
|
|
1255
1254
|
clipPath: "url(#clip0_14246_498359)",
|
|
1256
1255
|
children: /* @__PURE__ */ jsx("path", {
|
|
@@ -1482,21 +1481,6 @@ var IconGiphy = createIcon("IconGiphy", /* @__PURE__ */ jsxs(Fragment$1, { child
|
|
|
1482
1481
|
})
|
|
1483
1482
|
] }));
|
|
1484
1483
|
//#endregion
|
|
1485
|
-
//#region src/components/UtilityComponents/useStableId.ts
|
|
1486
|
-
var reactUseId = React.useId;
|
|
1487
|
-
var stripUseIdWrappers = (id) => id.replace(/[:«»]/g, "");
|
|
1488
|
-
/**
|
|
1489
|
-
* Returns a stable, unique string id.
|
|
1490
|
-
*
|
|
1491
|
-
* On React 18+ this delegates to `React.useId()` (with the surrounding wrapper
|
|
1492
|
-
* characters stripped so the value is safe to use anywhere an HTML id is expected)
|
|
1493
|
-
* and is SSR-stable. On React 17, it falls back to a client-only id generated via `nanoid`.
|
|
1494
|
-
*/
|
|
1495
|
-
var useStableId = () => {
|
|
1496
|
-
if (reactUseId) return stripUseIdWrappers(reactUseId());
|
|
1497
|
-
return useMemo(() => nanoid(), []);
|
|
1498
|
-
};
|
|
1499
|
-
//#endregion
|
|
1500
1484
|
//#region src/components/EmptyStateIndicator/EmptyStateIndicator.tsx
|
|
1501
1485
|
var UnMemoizedEmptyStateIndicator = (props) => {
|
|
1502
1486
|
const { listType, messageText } = props;
|
|
@@ -1828,14 +1812,16 @@ var useIsMounted = () => {
|
|
|
1828
1812
|
};
|
|
1829
1813
|
//#endregion
|
|
1830
1814
|
//#region src/components/Channel/hooks/useMentionsHandlers.ts
|
|
1831
|
-
var useMentionsHandlers = (onMentionsHover, onMentionsClick) => useCallback((event, mentioned_users) => {
|
|
1815
|
+
var useMentionsHandlers = (onMentionsHover, onMentionsClick) => useCallback((event, mentioned_users, message) => {
|
|
1832
1816
|
if (!onMentionsHover && !onMentionsClick || !(event.target instanceof HTMLElement)) return;
|
|
1833
1817
|
const textContent = event.target.innerHTML.replace("*", "");
|
|
1834
1818
|
if (textContent[0] === "@") {
|
|
1835
1819
|
const userName = textContent.replace("@", "");
|
|
1836
1820
|
const user = mentioned_users?.find(({ id, name }) => name === userName || id === userName);
|
|
1837
|
-
if (onMentionsHover && typeof onMentionsHover === "function" && event.type === "mouseover") onMentionsHover(event, user);
|
|
1838
|
-
|
|
1821
|
+
if (onMentionsHover && typeof onMentionsHover === "function" && event.type === "mouseover") if (message) onMentionsHover(event, user, message);
|
|
1822
|
+
else onMentionsHover(event, user);
|
|
1823
|
+
if (onMentionsClick && event.type === "click" && typeof onMentionsClick === "function") if (message) onMentionsClick(event, user, message);
|
|
1824
|
+
else onMentionsClick(event, user);
|
|
1839
1825
|
}
|
|
1840
1826
|
}, [onMentionsClick, onMentionsHover]);
|
|
1841
1827
|
//#endregion
|
|
@@ -2069,6 +2055,51 @@ var isMessageBlocked = (message) => message.shadowed || message.type === "error"
|
|
|
2069
2055
|
var isMessageDeleted = (message) => Boolean(message.deleted_at || message.type === "deleted" || message.deleted_for_me);
|
|
2070
2056
|
var isMessageEdited = (message) => !!message.message_text_updated_at;
|
|
2071
2057
|
//#endregion
|
|
2058
|
+
//#region src/components/Dialog/hooks/usePopoverPosition.ts
|
|
2059
|
+
var hasResizeObserver = typeof window !== "undefined" && "ResizeObserver" in window;
|
|
2060
|
+
function autoMiddlewareFor(p) {
|
|
2061
|
+
if (!String(p).startsWith("auto")) return null;
|
|
2062
|
+
return autoPlacement({ alignment: p === "auto-start" ? "start" : p === "auto-end" ? "end" : void 0 });
|
|
2063
|
+
}
|
|
2064
|
+
function toOffsetMw(opt) {
|
|
2065
|
+
if (opt == null) return null;
|
|
2066
|
+
if (Array.isArray(opt)) {
|
|
2067
|
+
const [crossAxis, mainAxis] = opt;
|
|
2068
|
+
return offset({
|
|
2069
|
+
crossAxis,
|
|
2070
|
+
mainAxis
|
|
2071
|
+
});
|
|
2072
|
+
}
|
|
2073
|
+
if (typeof opt === "number") return offset(opt);
|
|
2074
|
+
return offset(opt);
|
|
2075
|
+
}
|
|
2076
|
+
function usePopoverPosition({ allowFlip = true, allowShift = true, autoUpdateOptions, fitAvailableSpace = false, freeze = false, offset, placement = "bottom-start", shiftOptions }) {
|
|
2077
|
+
const autoMw = autoMiddlewareFor(placement);
|
|
2078
|
+
const offsetMiddleware = toOffsetMw(offset);
|
|
2079
|
+
const isSidePlacement = placement.startsWith("left") || placement.startsWith("right");
|
|
2080
|
+
const mergedShiftOptions = shiftOptions ? {
|
|
2081
|
+
padding: 8,
|
|
2082
|
+
...shiftOptions
|
|
2083
|
+
} : { padding: 8 };
|
|
2084
|
+
return useFloating({
|
|
2085
|
+
middleware: [
|
|
2086
|
+
...offsetMiddleware ? [offsetMiddleware] : [],
|
|
2087
|
+
...autoMw ? [autoMw] : allowFlip && !isSidePlacement ? [flip()] : [],
|
|
2088
|
+
...allowShift ? [shift(mergedShiftOptions)] : [],
|
|
2089
|
+
...fitAvailableSpace ? [size({ apply: () => {} })] : []
|
|
2090
|
+
],
|
|
2091
|
+
placement: String(placement).startsWith("auto") ? "bottom" : placement,
|
|
2092
|
+
strategy: "fixed",
|
|
2093
|
+
whileElementsMounted: freeze ? void 0 : (reference, floating, update) => autoUpdate(reference, floating, update, {
|
|
2094
|
+
ancestorResize: true,
|
|
2095
|
+
ancestorScroll: true,
|
|
2096
|
+
animationFrame: false,
|
|
2097
|
+
elementResize: hasResizeObserver,
|
|
2098
|
+
...autoUpdateOptions
|
|
2099
|
+
})
|
|
2100
|
+
});
|
|
2101
|
+
}
|
|
2102
|
+
//#endregion
|
|
2072
2103
|
//#region src/components/Thread/LegacyThreadContext.ts
|
|
2073
2104
|
var LegacyThreadContext = React.createContext({ legacyThread: void 0 });
|
|
2074
2105
|
var useLegacyThreadContext = () => useContext(LegacyThreadContext);
|
|
@@ -2718,55 +2749,6 @@ var useActiveAudioPlayer = () => {
|
|
|
2718
2749
|
return activeAudioPlayer;
|
|
2719
2750
|
};
|
|
2720
2751
|
//#endregion
|
|
2721
|
-
//#region src/components/MessageComposer/hooks/useIsCooldownActive.ts
|
|
2722
|
-
var cooldownTimerStateSelector = (state) => ({ isCooldownActive: !!state.cooldownRemaining });
|
|
2723
|
-
var useIsCooldownActive = () => {
|
|
2724
|
-
const { channel } = useChannelStateContext();
|
|
2725
|
-
return useStateStore(channel.cooldownTimer.state, cooldownTimerStateSelector).isCooldownActive;
|
|
2726
|
-
};
|
|
2727
|
-
//#endregion
|
|
2728
|
-
//#region src/components/MessageComposer/hooks/useMessageComposerController.ts
|
|
2729
|
-
var queueCache = new FixedSizeQueueCache(64);
|
|
2730
|
-
var useMessageComposerController = () => {
|
|
2731
|
-
const { client } = useChatContext();
|
|
2732
|
-
const { channel } = useChannelStateContext();
|
|
2733
|
-
const { legacyThread: parentMessage } = useLegacyThreadContext();
|
|
2734
|
-
const threadInstance = useThreadContext();
|
|
2735
|
-
const cachedParentMessage = useMemo(() => {
|
|
2736
|
-
if (!parentMessage) return void 0;
|
|
2737
|
-
return parentMessage;
|
|
2738
|
-
}, [parentMessage?.id]);
|
|
2739
|
-
const messageComposer = useMemo(() => {
|
|
2740
|
-
if (threadInstance) return threadInstance.messageComposer;
|
|
2741
|
-
else if (cachedParentMessage) {
|
|
2742
|
-
const compositionContext = {
|
|
2743
|
-
...cachedParentMessage,
|
|
2744
|
-
legacyThreadId: cachedParentMessage.id
|
|
2745
|
-
};
|
|
2746
|
-
const tag = MessageComposer.constructTag(compositionContext);
|
|
2747
|
-
const cachedComposer = queueCache.get(tag);
|
|
2748
|
-
if (cachedComposer) return cachedComposer;
|
|
2749
|
-
return new MessageComposer({
|
|
2750
|
-
client,
|
|
2751
|
-
compositionContext
|
|
2752
|
-
});
|
|
2753
|
-
} else return channel.messageComposer;
|
|
2754
|
-
}, [
|
|
2755
|
-
cachedParentMessage,
|
|
2756
|
-
channel,
|
|
2757
|
-
client,
|
|
2758
|
-
threadInstance
|
|
2759
|
-
]);
|
|
2760
|
-
if (["legacy_thread", "message"].includes(messageComposer.contextType) && !queueCache.peek(messageComposer.tag)) queueCache.add(messageComposer.tag, messageComposer);
|
|
2761
|
-
useEffect(() => {
|
|
2762
|
-
const unsubscribe = messageComposer.registerSubscriptions();
|
|
2763
|
-
return () => {
|
|
2764
|
-
unsubscribe();
|
|
2765
|
-
};
|
|
2766
|
-
}, [messageComposer]);
|
|
2767
|
-
return messageComposer;
|
|
2768
|
-
};
|
|
2769
|
-
//#endregion
|
|
2770
2752
|
//#region src/constants/messageTypes.ts
|
|
2771
2753
|
var CUSTOM_MESSAGE_TYPE = {
|
|
2772
2754
|
date: "message.date",
|
|
@@ -4095,16 +4077,16 @@ var useNotificationTarget = () => {
|
|
|
4095
4077
|
};
|
|
4096
4078
|
//#endregion
|
|
4097
4079
|
//#region src/components/Notifications/hooks/useNotificationApi.ts
|
|
4098
|
-
var
|
|
4080
|
+
var modalDialogManagerStateSelector = ({ dialogsById, openedDialogIds }) => ({ hasOpenDialog: openedDialogIds ? openedDialogIds.length > 0 : Object.values(dialogsById).some((dialog) => dialog.isOpen) });
|
|
4099
4081
|
/** Tag used for full-width system banners (e.g. connection status). Excluded from `NotificationList` by default. */
|
|
4100
4082
|
var SYSTEM_NOTIFICATION_TAG = "system";
|
|
4101
4083
|
var hasSystemNotificationTag = (notification) => notification.tags?.includes("system") ?? false;
|
|
4102
|
-
var getTargetTags = (targetPanels, inferredPanel, tags,
|
|
4084
|
+
var getTargetTags = (targetPanels, inferredPanel, tags, modalManagerHasOpenDialog) => {
|
|
4103
4085
|
if (targetPanels) {
|
|
4104
|
-
const effectiveTargetPanels =
|
|
4086
|
+
const effectiveTargetPanels = modalManagerHasOpenDialog && targetPanels.length > 0 ? [...targetPanels, "modal"] : targetPanels;
|
|
4105
4087
|
return Array.from(new Set([...effectiveTargetPanels.map(getNotificationTargetTag), ...tags ?? []]));
|
|
4106
4088
|
}
|
|
4107
|
-
if (
|
|
4089
|
+
if (modalManagerHasOpenDialog) return Array.from(new Set([
|
|
4108
4090
|
...inferredPanel ? [getNotificationTargetTag(inferredPanel)] : [],
|
|
4109
4091
|
getNotificationTargetTag("modal"),
|
|
4110
4092
|
...tags ?? []
|
|
@@ -4125,10 +4107,10 @@ var getTypeFromIncident = ({ incident, severity, type }) => {
|
|
|
4125
4107
|
var useNotificationApi = () => {
|
|
4126
4108
|
const { client } = useChatContext();
|
|
4127
4109
|
const inferredPanel = useNotificationTarget();
|
|
4128
|
-
const
|
|
4110
|
+
const modalManagerHasOpenDialog = useStateStore(useModalDialogManager()?.state, modalDialogManagerStateSelector)?.hasOpenDialog ?? false;
|
|
4129
4111
|
return {
|
|
4130
4112
|
addNotification: useCallback(({ actions, context, duration, emitter, error, incident, message, severity, tags, targetPanels, type }) => {
|
|
4131
|
-
const notificationTags = getTargetTags(targetPanels, inferredPanel, tags,
|
|
4113
|
+
const notificationTags = getTargetTags(targetPanels, inferredPanel, tags, modalManagerHasOpenDialog);
|
|
4132
4114
|
const resolvedType = getTypeFromIncident({
|
|
4133
4115
|
incident,
|
|
4134
4116
|
severity,
|
|
@@ -4154,7 +4136,7 @@ var useNotificationApi = () => {
|
|
|
4154
4136
|
}, [
|
|
4155
4137
|
client,
|
|
4156
4138
|
inferredPanel,
|
|
4157
|
-
|
|
4139
|
+
modalManagerHasOpenDialog
|
|
4158
4140
|
]),
|
|
4159
4141
|
addSystemNotification: useCallback(({ actions, context, duration, emitter, error, incident, message, severity, tags, type }) => {
|
|
4160
4142
|
const notificationTags = Array.from(new Set([SYSTEM_NOTIFICATION_TAG, ...tags ?? []]));
|
|
@@ -4190,6 +4172,6 @@ var useNotificationApi = () => {
|
|
|
4190
4172
|
};
|
|
4191
4173
|
};
|
|
4192
4174
|
//#endregion
|
|
4193
|
-
export {
|
|
4175
|
+
export { isMessageErrorRetryable as $, addNotificationTargetTag as $n, useChannelActionContext as $r, IconGiphy as $t, WithAudioPlayback as A, IconSend as An, useDialogIsOpen as Ar, IconCamera as At, MESSAGE_ACTIONS as B, IconUserAdd as Bn, ComponentProvider as Br, IconDelete as Bt, insertIntro as C, IconPoll as Cn, useModalDialogManager as Cr, IconAttachment as Ct, makeDateMessageId as D, IconReply as Dn, Portal as Dr, IconBolt as Dt, isLocalMessage as E, IconReorder as En, DialogPortalEntry as Er, IconBellOff as Et, elementIsPlaying as F, IconTrophy as Fn, useModalDialogIsTopmost as Fr, IconChevronLeft as Ft, getImages as G, IconVideoFill as Gn, ChannelStateContext as Gr, IconExclamationCircleFill as Gt, areMessagePropsEqual as H, IconUserRemove as Hn, ChatContext as Hr, IconEdit as Ht, LegacyThreadContext as I, IconUnpin as In, useOpenedDialogCount as Ir, IconChevronRight as It, getReadByTooltipText as J, IconXmark as Jn, ChannelListContext as Jr, IconExclamationTriangleFill as Jt, getMessageActions as K, IconVoice as Kn, ChannelStateProvider as Kr, IconExclamationMark as Kt, useLegacyThreadContext as L, IconUnsupportedAttachment as Ln, useStateStore as Lr, IconClock as Lt, useAudioPlayer as M, IconThread as Mn, useDialogOnNearestManager as Mr, IconCheckmark1Small as Mt, AudioPlayer as N, IconThreadFill as Nn, useModalDialog as Nr, IconChecks as Nt, makeIntroMessage as O, IconRetry as On, modalDialogId as Or, IconBookmark as Ot, defaultRegisterAudioPlayerError as P, IconTranslate as Pn, useModalDialogIsOpen as Pr, IconChevronDown as Pt, isMessageEdited as Q, useStableId as Qn, ChannelActionProvider as Qr, IconFolder as Qt, usePopoverPosition as R, IconUpload as Rn, DialogManager as Rr, IconCommand as Rt, hasMoreMessagesProbably as S, IconPlusSmall as Sn, useDialogManager as Sr, IconArrowUpRight as St, isIntroMessage as T, IconRefresh as Tn, DialogPortalDestination as Tr, IconBell as Tt, areMessageUIPropsEqual as U, IconUsers as Un, ChatProvider as Ur, IconEmoji as Ut, OPTIONAL_MESSAGE_ACTIONS as V, IconUserCheck as Vn, useComponentContext as Vr, IconDownload as Vt, countEmojis as W, IconVideo as Wn, useChatContext as Wr, IconEmojiAdd as Wt, isMessageBounced as X, createIcon as Xn, useChannelListContext as Xr, IconFile as Xt, isMessageBlocked as Y, IconXmarkSmall as Yn, ChannelListContextProvider as Yr, IconEyeFill as Yt, isMessageDeleted as Z, Button as Zn, ChannelActionContext as Zr, IconFlag as Zt, Channel as _, IconNotification as _n, isNumberOrString as _r, IconArchive as _t, ChatView as a, IconLocation as an, TypingContext as ar, messageHasQuotedMessage as at, getIsFirstUnreadMessage as b, IconPlayFill as bn, ModalDialogManagerProvider as br, IconArrowLeft as bt, ChatViewSelectorButton as c, IconMessageBubble as cn, TranslationContext as cr, messageTextHasEmojisOnly as ct, useActiveThread as d, IconMicrophoneSolid as dn, defaultDateTimeParser as dr, CHANNEL_CONTAINER_ID as dt, IconImage as en, getNotificationTargetPanel as er, isNetworkSendFailure as et, useChatViewContext as f, IconMinus as fn, defaultTranslatorFunction as fr, LoadingErrorIndicator as ft, useThreadContext as g, IconNoSign as gn, isLanguageSupported as gr, EmptyStateIndicator as gt, ThreadProvider as h, IconMute as hn, isDayOrMoment as hr, useEditMessageHandler as ht, useNotificationTarget as i, IconLoading as in, isNotificationTargetPanel as ir, messageHasGiphyAttachment as it, useActiveAudioPlayer as j, IconShield as jn, useDialogIsTopmost as jr, IconCheckmark as jt, processMessages as k, IconSearch as kn, useDialog as kr, IconBookmarkRemove as kt, ChatViewThreadsSelectorButton as l, IconMessageBubbleFill as ln, TranslationProvider as lr, validateAndGetMessage as lt, ThreadContext as m, IconMore as mn, isDate as mr, useMentionsHandlers as mt, hasSystemNotificationTag as n, IconLeave as nn, getNotificationTargetTag as nr, mapToUserNameOrId as nt, ChatViewChannelsSelectorButton as o, IconMegaphone as on, TypingProvider as or, messageHasReactions as ot, useThreadsViewContext as p, IconMinusCircle as pn, getDateString as pr, LoadingChannel as pt, getNonImageAttachments as q, IconXCircle as qn, useChannelStateContext as qr, IconExclamationMarkFill as qt, useNotificationApi as r, IconLink as rn, isNotificationForPanel as rr, messageHasAttachments as rt, ChatViewContext as s, IconMenu as sn, useTypingContext as sr, messageHasSingleAttachment as st, SYSTEM_NOTIFICATION_TAG as t, IconInfo as tn, getNotificationTargetPanels as tr, isUserMuted as tt, defaultChatViewSelectorItemSet as u, IconMessageBubbles as un, useTranslationContext as ur, EMOJI_REGEX as ut, getChannel as v, IconPauseFill as vn, predefinedFormatters as vr, IconArrowDown as vt, isDateSeparatorMessage as w, IconQuote as wn, useNearestDialogManagerContext as wr, IconAudio as wt, getLastReceived as x, IconPlus as xn, modalDialogManagerId as xr, IconArrowUp as xt, getGroupStyles as y, IconPin as yn, DialogManagerProvider as yr, IconArrowDownCircle as yt, ACTIONS_NOT_WORKING_IN_THREAD as z, IconUser as zn, ComponentContext as zr, IconCopy as zt };
|
|
4194
4176
|
|
|
4195
|
-
//# sourceMappingURL=useNotificationApi.
|
|
4177
|
+
//# sourceMappingURL=useNotificationApi.fa5cddf9.mjs.map
|