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.
@@ -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.channel) {
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.channel.id,
172
- type: event.channel.type,
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
- }, [channel, refreshUnreadCount, channelUpdateCount]);
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.6";
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
- }, [channel, refreshUnreadCount, channelUpdateCount]);
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
  {