stream-chat-react 12.15.6 → 12.15.8
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/components/Channel/Channel.js +1 -0
- package/dist/components/ChannelList/hooks/useChannelListShape.js +3 -3
- package/dist/components/ChannelPreview/ChannelPreview.js +13 -2
- package/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +1 -1
- package/dist/components/MessageList/VirtualizedMessageListComponents.js +4 -0
- package/dist/experimental/index.browser.cjs +16 -4
- package/dist/experimental/index.browser.cjs.map +2 -2
- package/dist/experimental/index.node.cjs +16 -4
- package/dist/experimental/index.node.cjs.map +2 -2
- package/dist/index.browser.cjs +24 -9
- package/dist/index.browser.cjs.map +2 -2
- package/dist/index.node.cjs +24 -9
- package/dist/index.node.cjs.map +2 -2
- package/package.json +1 -1
|
@@ -72,6 +72,7 @@ const ChannelInner = (props) => {
|
|
|
72
72
|
...initialState,
|
|
73
73
|
hasMore: channel.state.messagePagination.hasPrev,
|
|
74
74
|
loading: !channel.initialized,
|
|
75
|
+
messages: channel.state.messages,
|
|
75
76
|
});
|
|
76
77
|
const jumpToMessageFromSearch = useSearchFocusedMessage();
|
|
77
78
|
const isMounted = useIsMounted();
|
|
@@ -163,13 +163,13 @@ export const useChannelListShapeDefaults = () => {
|
|
|
163
163
|
if (typeof customHandler === 'function') {
|
|
164
164
|
return customHandler(setChannels, event);
|
|
165
165
|
}
|
|
166
|
-
if (!event.
|
|
166
|
+
if (!event.channel_id && !event.channel_type) {
|
|
167
167
|
return;
|
|
168
168
|
}
|
|
169
169
|
const channel = await getChannel({
|
|
170
170
|
client,
|
|
171
|
-
id: event.
|
|
172
|
-
type: event.
|
|
171
|
+
id: event.channel_id,
|
|
172
|
+
type: event.channel_type,
|
|
173
173
|
});
|
|
174
174
|
const considerArchivedChannels = shouldConsiderArchivedChannels(filters);
|
|
175
175
|
if (isChannelArchived(channel) && considerArchivedChannels && !filters.archived) {
|
|
@@ -15,6 +15,7 @@ export const ChannelPreview = (props) => {
|
|
|
15
15
|
channel,
|
|
16
16
|
});
|
|
17
17
|
const [lastMessage, setLastMessage] = useState(channel.state.messages[channel.state.messages.length - 1]);
|
|
18
|
+
const [latestMessagePreview, setLatestMessagePreview] = useState(() => getLatestMessagePreview(channel, t, userLanguage, isMessageAIGenerated));
|
|
18
19
|
const [unread, setUnread] = useState(0);
|
|
19
20
|
const { messageDeliveryStatus } = useMessageDeliveryStatus({
|
|
20
21
|
channel,
|
|
@@ -55,8 +56,10 @@ export const ChannelPreview = (props) => {
|
|
|
55
56
|
}, 400), [channel, muted]);
|
|
56
57
|
useEffect(() => {
|
|
57
58
|
refreshUnreadCount();
|
|
59
|
+
setLatestMessagePreview(getLatestMessagePreview(channel, t, userLanguage, isMessageAIGenerated));
|
|
58
60
|
const handleEvent = () => {
|
|
59
61
|
setLastMessage(channel.state.latestMessages[channel.state.latestMessages.length - 1]);
|
|
62
|
+
setLatestMessagePreview(getLatestMessagePreview(channel, t, userLanguage, isMessageAIGenerated));
|
|
60
63
|
refreshUnreadCount();
|
|
61
64
|
};
|
|
62
65
|
channel.on('message.new', handleEvent);
|
|
@@ -71,9 +74,17 @@ export const ChannelPreview = (props) => {
|
|
|
71
74
|
channel.off('message.undeleted', handleEvent);
|
|
72
75
|
channel.off('channel.truncated', handleEvent);
|
|
73
76
|
};
|
|
74
|
-
}, [
|
|
77
|
+
}, [
|
|
78
|
+
channel,
|
|
79
|
+
client,
|
|
80
|
+
refreshUnreadCount,
|
|
81
|
+
channelUpdateCount,
|
|
82
|
+
getLatestMessagePreview,
|
|
83
|
+
t,
|
|
84
|
+
userLanguage,
|
|
85
|
+
isMessageAIGenerated,
|
|
86
|
+
]);
|
|
75
87
|
if (!Preview)
|
|
76
88
|
return null;
|
|
77
|
-
const latestMessagePreview = getLatestMessagePreview(channel, t, userLanguage, isMessageAIGenerated);
|
|
78
89
|
return (React.createElement(Preview, { ...props, active: isActive, displayImage: displayImage, displayTitle: displayTitle, groupChannelDisplayInfo: groupChannelDisplayInfo, lastMessage: lastMessage, latestMessage: latestMessagePreview, latestMessagePreview: latestMessagePreview, messageDeliveryStatus: messageDeliveryStatus, setActiveChannel: setActiveChannel, unread: unread }));
|
|
79
90
|
};
|
|
@@ -24,7 +24,7 @@ export const useChat = ({ client, defaultLanguage = 'en', i18nInstance, initialN
|
|
|
24
24
|
useEffect(() => {
|
|
25
25
|
if (!client)
|
|
26
26
|
return;
|
|
27
|
-
const version = "12.15.
|
|
27
|
+
const version = "12.15.8";
|
|
28
28
|
const userAgent = client.getUserAgent();
|
|
29
29
|
if (!userAgent.includes('stream-chat-react')) {
|
|
30
30
|
// result looks like: 'stream-chat-react-2.3.2-stream-chat-javascript-client-browser-2.2.2'
|
|
@@ -12,6 +12,6 @@ type CommonVirtuosoComponentProps<StreamChatGenerics extends DefaultStreamChatGe
|
|
|
12
12
|
};
|
|
13
13
|
export declare const Item: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, ...props }: ItemProps & CommonVirtuosoComponentProps<StreamChatGenerics>) => React.JSX.Element;
|
|
14
14
|
export declare const Header: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => React.JSX.Element;
|
|
15
|
-
export declare const EmptyPlaceholder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => React.JSX.Element;
|
|
15
|
+
export declare const EmptyPlaceholder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => React.JSX.Element | null;
|
|
16
16
|
export declare const messageRenderer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(virtuosoIndex: number, _data: UnknownType, virtuosoContext: VirtuosoContext<StreamChatGenerics>) => React.JSX.Element | null;
|
|
17
17
|
export {};
|
|
@@ -44,6 +44,10 @@ export const Header = ({ context, }) => {
|
|
|
44
44
|
};
|
|
45
45
|
export const EmptyPlaceholder = ({ context, }) => {
|
|
46
46
|
const { EmptyStateIndicator = DefaultEmptyStateIndicator } = useComponentContext('VirtualizedMessageList');
|
|
47
|
+
// prevent showing that there are no messages if there actually are messages (for some reason virtuoso decides to render empty placeholder first, even though it has the totalCount prop > 0)
|
|
48
|
+
if (typeof context?.processedMessages !== 'undefined' &&
|
|
49
|
+
context.processedMessages.length > 0)
|
|
50
|
+
return null;
|
|
47
51
|
return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: context?.threadList ? 'thread' : 'message' }))));
|
|
48
52
|
};
|
|
49
53
|
export const messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
@@ -10733,6 +10733,9 @@ var ChannelPreview = (props) => {
|
|
|
10733
10733
|
const [lastMessage, setLastMessage] = (0, import_react23.useState)(
|
|
10734
10734
|
channel.state.messages[channel.state.messages.length - 1]
|
|
10735
10735
|
);
|
|
10736
|
+
const [latestMessagePreview, setLatestMessagePreview] = (0, import_react23.useState)(
|
|
10737
|
+
() => getLatestMessagePreview2(channel, t, userLanguage, isMessageAIGenerated)
|
|
10738
|
+
);
|
|
10736
10739
|
const [unread, setUnread] = (0, import_react23.useState)(0);
|
|
10737
10740
|
const { messageDeliveryStatus } = useMessageDeliveryStatus({
|
|
10738
10741
|
channel,
|
|
@@ -10771,10 +10774,16 @@ var ChannelPreview = (props) => {
|
|
|
10771
10774
|
);
|
|
10772
10775
|
(0, import_react23.useEffect)(() => {
|
|
10773
10776
|
refreshUnreadCount();
|
|
10777
|
+
setLatestMessagePreview(
|
|
10778
|
+
getLatestMessagePreview2(channel, t, userLanguage, isMessageAIGenerated)
|
|
10779
|
+
);
|
|
10774
10780
|
const handleEvent = () => {
|
|
10775
10781
|
setLastMessage(
|
|
10776
10782
|
channel.state.latestMessages[channel.state.latestMessages.length - 1]
|
|
10777
10783
|
);
|
|
10784
|
+
setLatestMessagePreview(
|
|
10785
|
+
getLatestMessagePreview2(channel, t, userLanguage, isMessageAIGenerated)
|
|
10786
|
+
);
|
|
10778
10787
|
refreshUnreadCount();
|
|
10779
10788
|
};
|
|
10780
10789
|
channel.on("message.new", handleEvent);
|
|
@@ -10789,14 +10798,17 @@ var ChannelPreview = (props) => {
|
|
|
10789
10798
|
channel.off("message.undeleted", handleEvent);
|
|
10790
10799
|
channel.off("channel.truncated", handleEvent);
|
|
10791
10800
|
};
|
|
10792
|
-
}, [
|
|
10793
|
-
if (!Preview) return null;
|
|
10794
|
-
const latestMessagePreview = getLatestMessagePreview2(
|
|
10801
|
+
}, [
|
|
10795
10802
|
channel,
|
|
10803
|
+
client,
|
|
10804
|
+
refreshUnreadCount,
|
|
10805
|
+
channelUpdateCount,
|
|
10806
|
+
getLatestMessagePreview2,
|
|
10796
10807
|
t,
|
|
10797
10808
|
userLanguage,
|
|
10798
10809
|
isMessageAIGenerated
|
|
10799
|
-
);
|
|
10810
|
+
]);
|
|
10811
|
+
if (!Preview) return null;
|
|
10800
10812
|
return /* @__PURE__ */ import_react23.default.createElement(
|
|
10801
10813
|
Preview,
|
|
10802
10814
|
{
|