stream-chat-react 14.5.0 → 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.963d6170.js → ReactPlayerWrapper.30240f76.js} +2 -2
- package/dist/cjs/{ReactPlayerWrapper.963d6170.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 +1804 -4064
- 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.e9312774.js → useNotificationApi.eb753f31.js} +121 -166
- 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 +111 -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 +1399 -3669
- 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.4be515a0.mjs → useNotificationApi.fa5cddf9.mjs} +104 -137
- 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/ChannelAvatar.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 +12 -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/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/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/context/DialogManagerContext.d.ts +3 -1
- package/dist/types/context/DialogManagerContext.d.ts.map +1 -1
- package/dist/types/i18n/Streami18n.d.ts +99 -0
- 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 +11 -2
- package/dist/cjs/useNotificationApi.e9312774.js.map +0 -1
- package/dist/es/useNotificationApi.4be515a0.mjs.map +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
const require_useNotificationApi = require("./useNotificationApi.eb753f31.js");
|
|
2
|
+
let react = require("react");
|
|
3
|
+
react = require_useNotificationApi.__toESM(react);
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let stream_chat = require("stream-chat");
|
|
6
|
+
//#region src/context/MessageComposerContext.tsx
|
|
7
|
+
var MessageComposerContext = (0, react.createContext)(void 0);
|
|
8
|
+
var MessageComposerContextProvider = ({ children, value }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MessageComposerContext.Provider, {
|
|
9
|
+
value,
|
|
10
|
+
children
|
|
11
|
+
});
|
|
12
|
+
var useMessageComposerContext = (componentName) => {
|
|
13
|
+
const contextValue = (0, react.useContext)(MessageComposerContext);
|
|
14
|
+
if (!contextValue) return {};
|
|
15
|
+
return contextValue;
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/components/MessageComposer/hooks/useIsCooldownActive.ts
|
|
19
|
+
var cooldownTimerStateSelector = (state) => ({ isCooldownActive: !!state.cooldownRemaining });
|
|
20
|
+
var useIsCooldownActive = () => {
|
|
21
|
+
const { channel } = require_useNotificationApi.useChannelStateContext();
|
|
22
|
+
return require_useNotificationApi.useStateStore(channel.cooldownTimer.state, cooldownTimerStateSelector).isCooldownActive;
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/components/MessageComposer/hooks/useMessageComposerController.ts
|
|
26
|
+
var useMessageComposerController = () => {
|
|
27
|
+
const { client } = require_useNotificationApi.useChatContext();
|
|
28
|
+
const { messageComposerCache: queueCache } = client;
|
|
29
|
+
const { channel } = require_useNotificationApi.useChannelStateContext();
|
|
30
|
+
const { legacyThread: parentMessage } = require_useNotificationApi.useLegacyThreadContext();
|
|
31
|
+
const threadInstance = require_useNotificationApi.useThreadContext();
|
|
32
|
+
const cachedParentMessage = (0, react.useMemo)(() => {
|
|
33
|
+
if (!parentMessage) return void 0;
|
|
34
|
+
return parentMessage;
|
|
35
|
+
}, [parentMessage?.id]);
|
|
36
|
+
const messageComposer = (0, react.useMemo)(() => {
|
|
37
|
+
if (threadInstance) return threadInstance.messageComposer;
|
|
38
|
+
else if (cachedParentMessage) {
|
|
39
|
+
const compositionContext = {
|
|
40
|
+
...cachedParentMessage,
|
|
41
|
+
legacyThreadId: cachedParentMessage.id
|
|
42
|
+
};
|
|
43
|
+
const tag = stream_chat.MessageComposer.constructTag(compositionContext);
|
|
44
|
+
const cachedComposer = queueCache.get(tag);
|
|
45
|
+
if (cachedComposer) return cachedComposer;
|
|
46
|
+
return new stream_chat.MessageComposer({
|
|
47
|
+
client,
|
|
48
|
+
compositionContext
|
|
49
|
+
});
|
|
50
|
+
} else return channel.messageComposer;
|
|
51
|
+
}, [
|
|
52
|
+
cachedParentMessage,
|
|
53
|
+
channel,
|
|
54
|
+
client,
|
|
55
|
+
queueCache,
|
|
56
|
+
threadInstance
|
|
57
|
+
]);
|
|
58
|
+
if (["legacy_thread", "message"].includes(messageComposer.contextType) && !queueCache.peek(messageComposer.tag)) queueCache.add(messageComposer.tag, messageComposer);
|
|
59
|
+
(0, react.useEffect)(() => {
|
|
60
|
+
const unsubscribe = messageComposer.registerSubscriptions();
|
|
61
|
+
return () => {
|
|
62
|
+
unsubscribe();
|
|
63
|
+
};
|
|
64
|
+
}, [messageComposer]);
|
|
65
|
+
return messageComposer;
|
|
66
|
+
};
|
|
67
|
+
//#endregion
|
|
68
|
+
Object.defineProperty(exports, "MessageComposerContext", {
|
|
69
|
+
enumerable: true,
|
|
70
|
+
get: function() {
|
|
71
|
+
return MessageComposerContext;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
Object.defineProperty(exports, "MessageComposerContextProvider", {
|
|
75
|
+
enumerable: true,
|
|
76
|
+
get: function() {
|
|
77
|
+
return MessageComposerContextProvider;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
Object.defineProperty(exports, "useIsCooldownActive", {
|
|
81
|
+
enumerable: true,
|
|
82
|
+
get: function() {
|
|
83
|
+
return useIsCooldownActive;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
Object.defineProperty(exports, "useMessageComposerContext", {
|
|
87
|
+
enumerable: true,
|
|
88
|
+
get: function() {
|
|
89
|
+
return useMessageComposerContext;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
Object.defineProperty(exports, "useMessageComposerController", {
|
|
93
|
+
enumerable: true,
|
|
94
|
+
get: function() {
|
|
95
|
+
return useMessageComposerController;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=useMessageComposerController.c0dad9bc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMessageComposerController.c0dad9bc.js","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,0BAAA,GAAA,MAAA,eAEX,KAAA,CAAS;AAEX,IAAa,kCAAkC,EAC7C,UACA,YAIA,iBAAA,GAAA,kBAAA,KAAC,uBAAuB,UAAxB;CACS;CAEN;AAC8B,CAAA;AAGnC,IAAa,6BAEX,kBACG;CACH,MAAM,gBAAA,GAAA,MAAA,YAA0B,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,2BAAA,uBAAuB;CAC3C,OAAO,2BAAA,cAAc,QAAQ,cAAc,OAAO,0BAA0B,EACzE;AACL;;;ACNA,IAAa,qCAAqC;CAChD,MAAM,EAAE,WAAW,2BAAA,eAAe;CAClC,MAAM,EAAE,sBAAsB,eAAe;CAC7C,MAAM,EAAE,YAAY,2BAAA,uBAAuB;CAC3C,MAAM,EAAE,cAAc,kBAAkB,2BAAA,uBAAuB;CAC/D,MAAM,iBAAiB,2BAAA,iBAAiB;CAExC,MAAM,uBAAA,GAAA,MAAA,eAAoC;EACxC,IAAI,CAAC,eAAe,OAAO,KAAA;EAE3B,OAAO;CAET,GAAG,CAAC,eAAe,EAAE,CAAC;CAKtB,MAAM,mBAAA,GAAA,MAAA,eAAgC;EACpC,IAAI,gBACF,OAAO,eAAe;OACjB,IAAI,qBAAqB;GAC9B,MAAM,qBAAqB;IACzB,GAAG;IACH,gBAAgB,oBAAoB;GACtC;GAEA,MAAM,MAAM,YAAA,gBAA0B,aAAa,kBAAkB;GAErE,MAAM,iBAAiB,WAAW,IAAI,GAAG;GACzC,IAAI,gBAAgB,OAAO;GAE3B,OAAO,IAAI,YAAA,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,CAAA,GAAA,MAAA,iBAAgB;EACd,MAAM,cAAc,gBAAgB,sBAAsB;EAC1D,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,eAAe,CAAC;CAEpB,OAAO;AACT"}
|
|
@@ -25,6 +25,8 @@ react = __toESM(react);
|
|
|
25
25
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
26
26
|
let stream_chat = require("stream-chat");
|
|
27
27
|
let nanoid = require("nanoid");
|
|
28
|
+
let clsx = require("clsx");
|
|
29
|
+
clsx = __toESM(clsx);
|
|
28
30
|
let use_sync_external_store_shim = require("use-sync-external-store/shim");
|
|
29
31
|
let react_dom = require("react-dom");
|
|
30
32
|
let dayjs = require("dayjs");
|
|
@@ -33,9 +35,6 @@ let dayjs_plugin_calendar = require("dayjs/plugin/calendar");
|
|
|
33
35
|
dayjs_plugin_calendar = __toESM(dayjs_plugin_calendar);
|
|
34
36
|
let dayjs_plugin_localizedFormat = require("dayjs/plugin/localizedFormat");
|
|
35
37
|
dayjs_plugin_localizedFormat = __toESM(dayjs_plugin_localizedFormat);
|
|
36
|
-
let clsx = require("clsx");
|
|
37
|
-
clsx = __toESM(clsx);
|
|
38
|
-
let _floating_ui_react = require("@floating-ui/react");
|
|
39
38
|
let lodash_debounce = require("lodash.debounce");
|
|
40
39
|
lodash_debounce = __toESM(lodash_debounce);
|
|
41
40
|
let lodash_throttle = require("lodash.throttle");
|
|
@@ -44,6 +43,7 @@ let react_fast_compare = require("react-fast-compare");
|
|
|
44
43
|
react_fast_compare = __toESM(react_fast_compare);
|
|
45
44
|
let emoji_regex = require("emoji-regex");
|
|
46
45
|
emoji_regex = __toESM(emoji_regex);
|
|
46
|
+
let _floating_ui_react = require("@floating-ui/react");
|
|
47
47
|
let linkifyjs = require("linkifyjs");
|
|
48
48
|
linkifyjs = __toESM(linkifyjs);
|
|
49
49
|
//#region src/context/ChannelActionContext.tsx
|
|
@@ -370,7 +370,7 @@ var Portal = ({ children, getPortalDestination, isOpen }) => {
|
|
|
370
370
|
//#endregion
|
|
371
371
|
//#region src/components/Dialog/service/DialogPortal.tsx
|
|
372
372
|
var shouldCloseOnOutsideClick = ({ dialog, managerCloseOnClickOutside }) => dialog.closeOnClickOutside ?? managerCloseOnClickOutside;
|
|
373
|
-
var DialogPortalDestination = () => {
|
|
373
|
+
var DialogPortalDestination = ({ captureOutsideClicks, className }) => {
|
|
374
374
|
const { dialogManager } = useNearestDialogManagerContext() ?? {};
|
|
375
375
|
const openedDialogCount = useOpenedDialogCount({ dialogManagerId: dialogManager?.id });
|
|
376
376
|
const [destinationRoot, setDestinationRoot] = (0, react.useState)(null);
|
|
@@ -399,7 +399,10 @@ var DialogPortalDestination = () => {
|
|
|
399
399
|
}, [destinationRoot, dialogManager]);
|
|
400
400
|
if (!openedDialogCount) return null;
|
|
401
401
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
402
|
-
className: "str-chat__dialog-overlay",
|
|
402
|
+
className: (0, clsx.default)("str-chat__dialog-overlay", {
|
|
403
|
+
"str-chat__dialog-overlay--modal": dialogManager?.id === modalDialogManagerId,
|
|
404
|
+
"str-chat__dialog-overlay--with-outside-click-capture": captureOutsideClicks
|
|
405
|
+
}, className),
|
|
403
406
|
"data-str-chat__portal-id": dialogManager?.id,
|
|
404
407
|
"data-testid": "str-chat__dialog-overlay",
|
|
405
408
|
ref: setDestinationRoot,
|
|
@@ -441,7 +444,7 @@ var DialogManagerProviderContext = react.default.createContext(void 0);
|
|
|
441
444
|
/**
|
|
442
445
|
* Creates/provides a dialog manager and its portal destination.
|
|
443
446
|
*/
|
|
444
|
-
var DialogManagerProvider = ({ children, closeOnClickOutside, id }) => {
|
|
447
|
+
var DialogManagerProvider = ({ children, closeOnClickOutside, id, portalDestinationProps }) => {
|
|
445
448
|
const [dialogManager, setDialogManager] = (0, react.useState)(() => {
|
|
446
449
|
if (id) return getDialogManager(id) ?? null;
|
|
447
450
|
return new DialogManager({ closeOnClickOutside });
|
|
@@ -460,7 +463,7 @@ var DialogManagerProvider = ({ children, closeOnClickOutside, id }) => {
|
|
|
460
463
|
if (!dialogManager) return null;
|
|
461
464
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(DialogManagerProviderContext.Provider, {
|
|
462
465
|
value: { dialogManager },
|
|
463
|
-
children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogPortalDestination, {})]
|
|
466
|
+
children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogPortalDestination, { ...portalDestinationProps })]
|
|
464
467
|
});
|
|
465
468
|
};
|
|
466
469
|
var getManagerFromStore = ({ dialogId, dialogManagerId, newState, previousState }) => {
|
|
@@ -530,18 +533,6 @@ var ModalDialogManagerProvider = ({ children }) => /* @__PURE__ */ (0, react_jsx
|
|
|
530
533
|
var useModalDialogManager = () => (0, react.useMemo)(() => getDialogManager(modalDialogManagerId), []);
|
|
531
534
|
var useNearestDialogManagerContext = () => (0, react.useContext)(DialogManagerProviderContext);
|
|
532
535
|
//#endregion
|
|
533
|
-
//#region src/context/MessageComposerContext.tsx
|
|
534
|
-
var MessageComposerContext = (0, react.createContext)(void 0);
|
|
535
|
-
var MessageComposerContextProvider = ({ children, value }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MessageComposerContext.Provider, {
|
|
536
|
-
value,
|
|
537
|
-
children
|
|
538
|
-
});
|
|
539
|
-
var useMessageComposerContext = (componentName) => {
|
|
540
|
-
const contextValue = (0, react.useContext)(MessageComposerContext);
|
|
541
|
-
if (!contextValue) return {};
|
|
542
|
-
return contextValue;
|
|
543
|
-
};
|
|
544
|
-
//#endregion
|
|
545
536
|
//#region src/i18n/utils.ts
|
|
546
537
|
var isNumberOrString = (output) => typeof output === "string" || typeof output === "number";
|
|
547
538
|
var isDayOrMoment = (output) => !!output?.isSame;
|
|
@@ -741,50 +732,20 @@ var isNotificationForPanel = (notification, panel, options) => {
|
|
|
741
732
|
return (options?.fallbackPanel ?? "channel") === panel;
|
|
742
733
|
};
|
|
743
734
|
//#endregion
|
|
744
|
-
//#region src/components/
|
|
745
|
-
var
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
}
|
|
759
|
-
if (typeof opt === "number") return (0, _floating_ui_react.offset)(opt);
|
|
760
|
-
return (0, _floating_ui_react.offset)(opt);
|
|
761
|
-
}
|
|
762
|
-
function usePopoverPosition({ allowFlip = true, allowShift = true, autoUpdateOptions, fitAvailableSpace = false, freeze = false, offset, placement = "bottom-start", shiftOptions }) {
|
|
763
|
-
const autoMw = autoMiddlewareFor(placement);
|
|
764
|
-
const offsetMiddleware = toOffsetMw(offset);
|
|
765
|
-
const isSidePlacement = placement.startsWith("left") || placement.startsWith("right");
|
|
766
|
-
const mergedShiftOptions = shiftOptions ? {
|
|
767
|
-
padding: 8,
|
|
768
|
-
...shiftOptions
|
|
769
|
-
} : { padding: 8 };
|
|
770
|
-
return (0, _floating_ui_react.useFloating)({
|
|
771
|
-
middleware: [
|
|
772
|
-
...offsetMiddleware ? [offsetMiddleware] : [],
|
|
773
|
-
...autoMw ? [autoMw] : allowFlip && !isSidePlacement ? [(0, _floating_ui_react.flip)()] : [],
|
|
774
|
-
...allowShift ? [(0, _floating_ui_react.shift)(mergedShiftOptions)] : [],
|
|
775
|
-
...fitAvailableSpace ? [(0, _floating_ui_react.size)({ apply: () => {} })] : []
|
|
776
|
-
],
|
|
777
|
-
placement: String(placement).startsWith("auto") ? "bottom" : placement,
|
|
778
|
-
strategy: "fixed",
|
|
779
|
-
whileElementsMounted: freeze ? void 0 : (reference, floating, update) => (0, _floating_ui_react.autoUpdate)(reference, floating, update, {
|
|
780
|
-
ancestorResize: true,
|
|
781
|
-
ancestorScroll: true,
|
|
782
|
-
animationFrame: false,
|
|
783
|
-
elementResize: hasResizeObserver,
|
|
784
|
-
...autoUpdateOptions
|
|
785
|
-
})
|
|
786
|
-
});
|
|
787
|
-
}
|
|
735
|
+
//#region src/components/UtilityComponents/useStableId.ts
|
|
736
|
+
var reactUseId = react.default.useId;
|
|
737
|
+
var stripUseIdWrappers = (id) => id.replace(/[:«»]/g, "");
|
|
738
|
+
/**
|
|
739
|
+
* Returns a stable, unique string id.
|
|
740
|
+
*
|
|
741
|
+
* On React 18+ this delegates to `React.useId()` (with the surrounding wrapper
|
|
742
|
+
* characters stripped so the value is safe to use anywhere an HTML id is expected)
|
|
743
|
+
* and is SSR-stable. On React 17, it falls back to a client-only id generated via `nanoid`.
|
|
744
|
+
*/
|
|
745
|
+
var useStableId = () => {
|
|
746
|
+
if (reactUseId) return stripUseIdWrappers(reactUseId());
|
|
747
|
+
return (0, react.useMemo)(() => (0, nanoid.nanoid)(), []);
|
|
748
|
+
};
|
|
788
749
|
//#endregion
|
|
789
750
|
//#region src/components/Button/Button.tsx
|
|
790
751
|
var variantToClass = {
|
|
@@ -1121,6 +1082,14 @@ var IconMore = createIcon("IconMore", /* @__PURE__ */ (0, react_jsx_runtime.jsxs
|
|
|
1121
1082
|
/* @__PURE__ */ (0, react_jsx_runtime.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" }),
|
|
1122
1083
|
/* @__PURE__ */ (0, react_jsx_runtime.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" })
|
|
1123
1084
|
] }));
|
|
1085
|
+
var IconMenu = createIcon("IconMenu", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1086
|
+
d: "M3.125 5H16.875M3.125 10H16.875M3.125 15H16.875",
|
|
1087
|
+
fill: "none",
|
|
1088
|
+
stroke: "currentColor",
|
|
1089
|
+
strokeLinecap: "round",
|
|
1090
|
+
strokeLinejoin: "round",
|
|
1091
|
+
strokeWidth: "1.5"
|
|
1092
|
+
}));
|
|
1124
1093
|
var IconReorder = createIcon("IconReorder", /* @__PURE__ */ (0, react_jsx_runtime.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" }));
|
|
1125
1094
|
var IconChecks = createIcon("IconChecks", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1126
1095
|
d: "M1.5 10.5724L4.98387 13.9936L13.1129 6.00977M10.371 13.9936L18.5 6.00977",
|
|
@@ -1207,6 +1176,10 @@ var IconFlag = createIcon("IconFlag", /* @__PURE__ */ (0, react_jsx_runtime.jsx)
|
|
|
1207
1176
|
strokeLinejoin: "round",
|
|
1208
1177
|
strokeWidth: "1.5"
|
|
1209
1178
|
}));
|
|
1179
|
+
var IconFolder = createIcon("IconFolder", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1180
|
+
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",
|
|
1181
|
+
fill: "currentColor"
|
|
1182
|
+
}));
|
|
1210
1183
|
var IconImage = createIcon("IconImage", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1211
1184
|
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",
|
|
1212
1185
|
fill: "none",
|
|
@@ -1215,6 +1188,20 @@ var IconImage = createIcon("IconImage", /* @__PURE__ */ (0, react_jsx_runtime.js
|
|
|
1215
1188
|
strokeLinejoin: "round",
|
|
1216
1189
|
strokeWidth: "1.5"
|
|
1217
1190
|
}));
|
|
1191
|
+
var IconInfo = createIcon("IconInfo", /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
1192
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1193
|
+
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",
|
|
1194
|
+
fill: "currentColor"
|
|
1195
|
+
}),
|
|
1196
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1197
|
+
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",
|
|
1198
|
+
fill: "currentColor"
|
|
1199
|
+
}),
|
|
1200
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1201
|
+
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",
|
|
1202
|
+
fill: "currentColor"
|
|
1203
|
+
})
|
|
1204
|
+
] }));
|
|
1218
1205
|
var IconSearch = createIcon("IconSearch", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1219
1206
|
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",
|
|
1220
1207
|
fill: "none",
|
|
@@ -1526,21 +1513,6 @@ var IconGiphy = createIcon("IconGiphy", /* @__PURE__ */ (0, react_jsx_runtime.js
|
|
|
1526
1513
|
})
|
|
1527
1514
|
] }));
|
|
1528
1515
|
//#endregion
|
|
1529
|
-
//#region src/components/UtilityComponents/useStableId.ts
|
|
1530
|
-
var reactUseId = react.default.useId;
|
|
1531
|
-
var stripUseIdWrappers = (id) => id.replace(/[:«»]/g, "");
|
|
1532
|
-
/**
|
|
1533
|
-
* Returns a stable, unique string id.
|
|
1534
|
-
*
|
|
1535
|
-
* On React 18+ this delegates to `React.useId()` (with the surrounding wrapper
|
|
1536
|
-
* characters stripped so the value is safe to use anywhere an HTML id is expected)
|
|
1537
|
-
* and is SSR-stable. On React 17, it falls back to a client-only id generated via `nanoid`.
|
|
1538
|
-
*/
|
|
1539
|
-
var useStableId = () => {
|
|
1540
|
-
if (reactUseId) return stripUseIdWrappers(reactUseId());
|
|
1541
|
-
return (0, react.useMemo)(() => (0, nanoid.nanoid)(), []);
|
|
1542
|
-
};
|
|
1543
|
-
//#endregion
|
|
1544
1516
|
//#region src/components/EmptyStateIndicator/EmptyStateIndicator.tsx
|
|
1545
1517
|
var UnMemoizedEmptyStateIndicator = (props) => {
|
|
1546
1518
|
const { listType, messageText } = props;
|
|
@@ -2115,6 +2087,51 @@ var isMessageBlocked = (message) => message.shadowed || message.type === "error"
|
|
|
2115
2087
|
var isMessageDeleted = (message) => Boolean(message.deleted_at || message.type === "deleted" || message.deleted_for_me);
|
|
2116
2088
|
var isMessageEdited = (message) => !!message.message_text_updated_at;
|
|
2117
2089
|
//#endregion
|
|
2090
|
+
//#region src/components/Dialog/hooks/usePopoverPosition.ts
|
|
2091
|
+
var hasResizeObserver = typeof window !== "undefined" && "ResizeObserver" in window;
|
|
2092
|
+
function autoMiddlewareFor(p) {
|
|
2093
|
+
if (!String(p).startsWith("auto")) return null;
|
|
2094
|
+
return (0, _floating_ui_react.autoPlacement)({ alignment: p === "auto-start" ? "start" : p === "auto-end" ? "end" : void 0 });
|
|
2095
|
+
}
|
|
2096
|
+
function toOffsetMw(opt) {
|
|
2097
|
+
if (opt == null) return null;
|
|
2098
|
+
if (Array.isArray(opt)) {
|
|
2099
|
+
const [crossAxis, mainAxis] = opt;
|
|
2100
|
+
return (0, _floating_ui_react.offset)({
|
|
2101
|
+
crossAxis,
|
|
2102
|
+
mainAxis
|
|
2103
|
+
});
|
|
2104
|
+
}
|
|
2105
|
+
if (typeof opt === "number") return (0, _floating_ui_react.offset)(opt);
|
|
2106
|
+
return (0, _floating_ui_react.offset)(opt);
|
|
2107
|
+
}
|
|
2108
|
+
function usePopoverPosition({ allowFlip = true, allowShift = true, autoUpdateOptions, fitAvailableSpace = false, freeze = false, offset, placement = "bottom-start", shiftOptions }) {
|
|
2109
|
+
const autoMw = autoMiddlewareFor(placement);
|
|
2110
|
+
const offsetMiddleware = toOffsetMw(offset);
|
|
2111
|
+
const isSidePlacement = placement.startsWith("left") || placement.startsWith("right");
|
|
2112
|
+
const mergedShiftOptions = shiftOptions ? {
|
|
2113
|
+
padding: 8,
|
|
2114
|
+
...shiftOptions
|
|
2115
|
+
} : { padding: 8 };
|
|
2116
|
+
return (0, _floating_ui_react.useFloating)({
|
|
2117
|
+
middleware: [
|
|
2118
|
+
...offsetMiddleware ? [offsetMiddleware] : [],
|
|
2119
|
+
...autoMw ? [autoMw] : allowFlip && !isSidePlacement ? [(0, _floating_ui_react.flip)()] : [],
|
|
2120
|
+
...allowShift ? [(0, _floating_ui_react.shift)(mergedShiftOptions)] : [],
|
|
2121
|
+
...fitAvailableSpace ? [(0, _floating_ui_react.size)({ apply: () => {} })] : []
|
|
2122
|
+
],
|
|
2123
|
+
placement: String(placement).startsWith("auto") ? "bottom" : placement,
|
|
2124
|
+
strategy: "fixed",
|
|
2125
|
+
whileElementsMounted: freeze ? void 0 : (reference, floating, update) => (0, _floating_ui_react.autoUpdate)(reference, floating, update, {
|
|
2126
|
+
ancestorResize: true,
|
|
2127
|
+
ancestorScroll: true,
|
|
2128
|
+
animationFrame: false,
|
|
2129
|
+
elementResize: hasResizeObserver,
|
|
2130
|
+
...autoUpdateOptions
|
|
2131
|
+
})
|
|
2132
|
+
});
|
|
2133
|
+
}
|
|
2134
|
+
//#endregion
|
|
2118
2135
|
//#region src/components/Thread/LegacyThreadContext.ts
|
|
2119
2136
|
var LegacyThreadContext = react.default.createContext({ legacyThread: void 0 });
|
|
2120
2137
|
var useLegacyThreadContext = () => (0, react.useContext)(LegacyThreadContext);
|
|
@@ -2764,56 +2781,6 @@ var useActiveAudioPlayer = () => {
|
|
|
2764
2781
|
return activeAudioPlayer;
|
|
2765
2782
|
};
|
|
2766
2783
|
//#endregion
|
|
2767
|
-
//#region src/components/MessageComposer/hooks/useIsCooldownActive.ts
|
|
2768
|
-
var cooldownTimerStateSelector = (state) => ({ isCooldownActive: !!state.cooldownRemaining });
|
|
2769
|
-
var useIsCooldownActive = () => {
|
|
2770
|
-
const { channel } = useChannelStateContext();
|
|
2771
|
-
return useStateStore(channel.cooldownTimer.state, cooldownTimerStateSelector).isCooldownActive;
|
|
2772
|
-
};
|
|
2773
|
-
//#endregion
|
|
2774
|
-
//#region src/components/MessageComposer/hooks/useMessageComposerController.ts
|
|
2775
|
-
var useMessageComposerController = () => {
|
|
2776
|
-
const { client } = useChatContext();
|
|
2777
|
-
const { messageComposerCache: queueCache } = client;
|
|
2778
|
-
const { channel } = useChannelStateContext();
|
|
2779
|
-
const { legacyThread: parentMessage } = useLegacyThreadContext();
|
|
2780
|
-
const threadInstance = useThreadContext();
|
|
2781
|
-
const cachedParentMessage = (0, react.useMemo)(() => {
|
|
2782
|
-
if (!parentMessage) return void 0;
|
|
2783
|
-
return parentMessage;
|
|
2784
|
-
}, [parentMessage?.id]);
|
|
2785
|
-
const messageComposer = (0, react.useMemo)(() => {
|
|
2786
|
-
if (threadInstance) return threadInstance.messageComposer;
|
|
2787
|
-
else if (cachedParentMessage) {
|
|
2788
|
-
const compositionContext = {
|
|
2789
|
-
...cachedParentMessage,
|
|
2790
|
-
legacyThreadId: cachedParentMessage.id
|
|
2791
|
-
};
|
|
2792
|
-
const tag = stream_chat.MessageComposer.constructTag(compositionContext);
|
|
2793
|
-
const cachedComposer = queueCache.get(tag);
|
|
2794
|
-
if (cachedComposer) return cachedComposer;
|
|
2795
|
-
return new stream_chat.MessageComposer({
|
|
2796
|
-
client,
|
|
2797
|
-
compositionContext
|
|
2798
|
-
});
|
|
2799
|
-
} else return channel.messageComposer;
|
|
2800
|
-
}, [
|
|
2801
|
-
cachedParentMessage,
|
|
2802
|
-
channel,
|
|
2803
|
-
client,
|
|
2804
|
-
queueCache,
|
|
2805
|
-
threadInstance
|
|
2806
|
-
]);
|
|
2807
|
-
if (["legacy_thread", "message"].includes(messageComposer.contextType) && !queueCache.peek(messageComposer.tag)) queueCache.add(messageComposer.tag, messageComposer);
|
|
2808
|
-
(0, react.useEffect)(() => {
|
|
2809
|
-
const unsubscribe = messageComposer.registerSubscriptions();
|
|
2810
|
-
return () => {
|
|
2811
|
-
unsubscribe();
|
|
2812
|
-
};
|
|
2813
|
-
}, [messageComposer]);
|
|
2814
|
-
return messageComposer;
|
|
2815
|
-
};
|
|
2816
|
-
//#endregion
|
|
2817
2784
|
//#region src/constants/messageTypes.ts
|
|
2818
2785
|
var CUSTOM_MESSAGE_TYPE = {
|
|
2819
2786
|
date: "message.date",
|
|
@@ -4142,16 +4109,16 @@ var useNotificationTarget = () => {
|
|
|
4142
4109
|
};
|
|
4143
4110
|
//#endregion
|
|
4144
4111
|
//#region src/components/Notifications/hooks/useNotificationApi.ts
|
|
4145
|
-
var
|
|
4112
|
+
var modalDialogManagerStateSelector = ({ dialogsById, openedDialogIds }) => ({ hasOpenDialog: openedDialogIds ? openedDialogIds.length > 0 : Object.values(dialogsById).some((dialog) => dialog.isOpen) });
|
|
4146
4113
|
/** Tag used for full-width system banners (e.g. connection status). Excluded from `NotificationList` by default. */
|
|
4147
4114
|
var SYSTEM_NOTIFICATION_TAG = "system";
|
|
4148
4115
|
var hasSystemNotificationTag = (notification) => notification.tags?.includes("system") ?? false;
|
|
4149
|
-
var getTargetTags = (targetPanels, inferredPanel, tags,
|
|
4116
|
+
var getTargetTags = (targetPanels, inferredPanel, tags, modalManagerHasOpenDialog) => {
|
|
4150
4117
|
if (targetPanels) {
|
|
4151
|
-
const effectiveTargetPanels =
|
|
4118
|
+
const effectiveTargetPanels = modalManagerHasOpenDialog && targetPanels.length > 0 ? [...targetPanels, "modal"] : targetPanels;
|
|
4152
4119
|
return Array.from(new Set([...effectiveTargetPanels.map(getNotificationTargetTag), ...tags ?? []]));
|
|
4153
4120
|
}
|
|
4154
|
-
if (
|
|
4121
|
+
if (modalManagerHasOpenDialog) return Array.from(new Set([
|
|
4155
4122
|
...inferredPanel ? [getNotificationTargetTag(inferredPanel)] : [],
|
|
4156
4123
|
getNotificationTargetTag("modal"),
|
|
4157
4124
|
...tags ?? []
|
|
@@ -4172,10 +4139,10 @@ var getTypeFromIncident = ({ incident, severity, type }) => {
|
|
|
4172
4139
|
var useNotificationApi = () => {
|
|
4173
4140
|
const { client } = useChatContext();
|
|
4174
4141
|
const inferredPanel = useNotificationTarget();
|
|
4175
|
-
const
|
|
4142
|
+
const modalManagerHasOpenDialog = useStateStore(useModalDialogManager()?.state, modalDialogManagerStateSelector)?.hasOpenDialog ?? false;
|
|
4176
4143
|
return {
|
|
4177
4144
|
addNotification: (0, react.useCallback)(({ actions, context, duration, emitter, error, incident, message, severity, tags, targetPanels, type }) => {
|
|
4178
|
-
const notificationTags = getTargetTags(targetPanels, inferredPanel, tags,
|
|
4145
|
+
const notificationTags = getTargetTags(targetPanels, inferredPanel, tags, modalManagerHasOpenDialog);
|
|
4179
4146
|
const resolvedType = getTypeFromIncident({
|
|
4180
4147
|
incident,
|
|
4181
4148
|
severity,
|
|
@@ -4201,7 +4168,7 @@ var useNotificationApi = () => {
|
|
|
4201
4168
|
}, [
|
|
4202
4169
|
client,
|
|
4203
4170
|
inferredPanel,
|
|
4204
|
-
|
|
4171
|
+
modalManagerHasOpenDialog
|
|
4205
4172
|
]),
|
|
4206
4173
|
addSystemNotification: (0, react.useCallback)(({ actions, context, duration, emitter, error, incident, message, severity, tags, type }) => {
|
|
4207
4174
|
const notificationTags = Array.from(new Set([SYSTEM_NOTIFICATION_TAG, ...tags ?? []]));
|
|
@@ -4603,6 +4570,12 @@ Object.defineProperty(exports, "IconFlag", {
|
|
|
4603
4570
|
return IconFlag;
|
|
4604
4571
|
}
|
|
4605
4572
|
});
|
|
4573
|
+
Object.defineProperty(exports, "IconFolder", {
|
|
4574
|
+
enumerable: true,
|
|
4575
|
+
get: function() {
|
|
4576
|
+
return IconFolder;
|
|
4577
|
+
}
|
|
4578
|
+
});
|
|
4606
4579
|
Object.defineProperty(exports, "IconGiphy", {
|
|
4607
4580
|
enumerable: true,
|
|
4608
4581
|
get: function() {
|
|
@@ -4615,6 +4588,12 @@ Object.defineProperty(exports, "IconImage", {
|
|
|
4615
4588
|
return IconImage;
|
|
4616
4589
|
}
|
|
4617
4590
|
});
|
|
4591
|
+
Object.defineProperty(exports, "IconInfo", {
|
|
4592
|
+
enumerable: true,
|
|
4593
|
+
get: function() {
|
|
4594
|
+
return IconInfo;
|
|
4595
|
+
}
|
|
4596
|
+
});
|
|
4618
4597
|
Object.defineProperty(exports, "IconLeave", {
|
|
4619
4598
|
enumerable: true,
|
|
4620
4599
|
get: function() {
|
|
@@ -4645,6 +4624,12 @@ Object.defineProperty(exports, "IconMegaphone", {
|
|
|
4645
4624
|
return IconMegaphone;
|
|
4646
4625
|
}
|
|
4647
4626
|
});
|
|
4627
|
+
Object.defineProperty(exports, "IconMenu", {
|
|
4628
|
+
enumerable: true,
|
|
4629
|
+
get: function() {
|
|
4630
|
+
return IconMenu;
|
|
4631
|
+
}
|
|
4632
|
+
});
|
|
4648
4633
|
Object.defineProperty(exports, "IconMessageBubble", {
|
|
4649
4634
|
enumerable: true,
|
|
4650
4635
|
get: function() {
|
|
@@ -4921,18 +4906,6 @@ Object.defineProperty(exports, "MESSAGE_ACTIONS", {
|
|
|
4921
4906
|
return MESSAGE_ACTIONS;
|
|
4922
4907
|
}
|
|
4923
4908
|
});
|
|
4924
|
-
Object.defineProperty(exports, "MessageComposerContext", {
|
|
4925
|
-
enumerable: true,
|
|
4926
|
-
get: function() {
|
|
4927
|
-
return MessageComposerContext;
|
|
4928
|
-
}
|
|
4929
|
-
});
|
|
4930
|
-
Object.defineProperty(exports, "MessageComposerContextProvider", {
|
|
4931
|
-
enumerable: true,
|
|
4932
|
-
get: function() {
|
|
4933
|
-
return MessageComposerContextProvider;
|
|
4934
|
-
}
|
|
4935
|
-
});
|
|
4936
4909
|
Object.defineProperty(exports, "ModalDialogManagerProvider", {
|
|
4937
4910
|
enumerable: true,
|
|
4938
4911
|
get: function() {
|
|
@@ -5419,12 +5392,6 @@ Object.defineProperty(exports, "useEditMessageHandler", {
|
|
|
5419
5392
|
return useEditMessageHandler;
|
|
5420
5393
|
}
|
|
5421
5394
|
});
|
|
5422
|
-
Object.defineProperty(exports, "useIsCooldownActive", {
|
|
5423
|
-
enumerable: true,
|
|
5424
|
-
get: function() {
|
|
5425
|
-
return useIsCooldownActive;
|
|
5426
|
-
}
|
|
5427
|
-
});
|
|
5428
5395
|
Object.defineProperty(exports, "useLegacyThreadContext", {
|
|
5429
5396
|
enumerable: true,
|
|
5430
5397
|
get: function() {
|
|
@@ -5437,18 +5404,6 @@ Object.defineProperty(exports, "useMentionsHandlers", {
|
|
|
5437
5404
|
return useMentionsHandlers;
|
|
5438
5405
|
}
|
|
5439
5406
|
});
|
|
5440
|
-
Object.defineProperty(exports, "useMessageComposerContext", {
|
|
5441
|
-
enumerable: true,
|
|
5442
|
-
get: function() {
|
|
5443
|
-
return useMessageComposerContext;
|
|
5444
|
-
}
|
|
5445
|
-
});
|
|
5446
|
-
Object.defineProperty(exports, "useMessageComposerController", {
|
|
5447
|
-
enumerable: true,
|
|
5448
|
-
get: function() {
|
|
5449
|
-
return useMessageComposerController;
|
|
5450
|
-
}
|
|
5451
|
-
});
|
|
5452
5407
|
Object.defineProperty(exports, "useModalDialog", {
|
|
5453
5408
|
enumerable: true,
|
|
5454
5409
|
get: function() {
|
|
@@ -5546,4 +5501,4 @@ Object.defineProperty(exports, "validateAndGetMessage", {
|
|
|
5546
5501
|
}
|
|
5547
5502
|
});
|
|
5548
5503
|
|
|
5549
|
-
//# sourceMappingURL=useNotificationApi.
|
|
5504
|
+
//# sourceMappingURL=useNotificationApi.eb753f31.js.map
|