stream-chat-react-native-core 4.13.0 → 4.14.0-beta.1

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.
Files changed (31) hide show
  1. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js +15 -0
  2. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  3. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  4. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  5. package/lib/commonjs/components/ImageGallery/ImageGallery.js +23 -21
  6. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  7. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  8. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  9. package/lib/commonjs/mock-builders/event/messageNew.js +2 -0
  10. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  11. package/lib/commonjs/version.json +1 -1
  12. package/lib/module/components/Attachment/utils/getGiphyMimeType.js +15 -0
  13. package/lib/module/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  14. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  15. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  16. package/lib/module/components/ImageGallery/ImageGallery.js +23 -21
  17. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  18. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  19. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  20. package/lib/module/mock-builders/event/messageNew.js +2 -0
  21. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  22. package/lib/module/version.json +1 -1
  23. package/lib/typescript/components/Attachment/utils/getGiphyMimeType.d.ts +6 -0
  24. package/package.json +1 -1
  25. package/src/components/Attachment/utils/getGiphyMimeType.ts +13 -0
  26. package/src/components/ChannelList/__tests__/ChannelList.test.js +28 -0
  27. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +19 -5
  28. package/src/components/ImageGallery/ImageGallery.tsx +2 -1
  29. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +22 -2
  30. package/src/mock-builders/event/messageNew.js +2 -0
  31. package/src/version.json +1 -1
@@ -65,6 +65,7 @@ import type { DefaultStreamChatGenerics } from '../../types/types';
65
65
  import { getResizedImageUrl } from '../../utils/getResizedImageUrl';
66
66
  import { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';
67
67
  import { vh, vw } from '../../utils/utils';
68
+ import { getGiphyMimeType } from '../Attachment/utils/getGiphyMimeType';
68
69
 
69
70
  const isAndroid = Platform.OS === 'android';
70
71
  const fullScreenHeight = Dimensions.get('screen').height;
@@ -280,7 +281,7 @@ export const ImageGallery = <
280
281
  created_at: cur.created_at,
281
282
  id: `photoId-${cur.id}-${imageUrl}`,
282
283
  messageId: cur.id,
283
- mime_type: a.type === 'giphy' ? 'image/gif' : a.mime_type,
284
+ mime_type: a.type === 'giphy' ? getGiphyMimeType(giphyURL ?? '') : a.mime_type,
284
285
  original_height: a.original_height,
285
286
  original_width: a.original_width,
286
287
  type: a.type,
@@ -117,8 +117,16 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
117
117
  prevProps: MessageTextContainerPropsWithContext<StreamChatGenerics>,
118
118
  nextProps: MessageTextContainerPropsWithContext<StreamChatGenerics>,
119
119
  ) => {
120
- const { message: prevMessage, onlyEmojis: prevOnlyEmojis } = prevProps;
121
- const { message: nextMessage, onlyEmojis: nextOnlyEmojis } = nextProps;
120
+ const {
121
+ markdownStyles: prevMarkdownStyles,
122
+ message: prevMessage,
123
+ onlyEmojis: prevOnlyEmojis,
124
+ } = prevProps;
125
+ const {
126
+ markdownStyles: nextMarkdownStyles,
127
+ message: nextMessage,
128
+ onlyEmojis: nextOnlyEmojis,
129
+ } = nextProps;
122
130
 
123
131
  const messageTextEqual = prevMessage.text === nextMessage.text;
124
132
  if (!messageTextEqual) return false;
@@ -134,6 +142,18 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
134
142
  prevMessage.mentioned_users[0].name === nextMessage.mentioned_users[0].name));
135
143
  if (!mentionedUsersEqual) return false;
136
144
 
145
+ // stringify could be an expensive operation, so lets rule out the obvious
146
+ // possibilities first such as different object reference or empty objects etc.
147
+ // Also keeping markdown equality check at the last to make sure other less
148
+ // expensive equality checks get executed first and markdown check will be skipped if returned
149
+ // false from previous checks.
150
+ const markdownStylesEqual =
151
+ prevMarkdownStyles === nextMarkdownStyles ||
152
+ (Object.keys(prevMarkdownStyles || {}).length === 0 &&
153
+ Object.keys(nextMarkdownStyles || {}).length === 0) ||
154
+ JSON.stringify(prevMarkdownStyles) === JSON.stringify(nextMarkdownStyles);
155
+ if (!markdownStylesEqual) return false;
156
+
137
157
  return true;
138
158
  };
139
159
 
@@ -1,6 +1,8 @@
1
1
  export default (client, newMessage, channel = {}) => {
2
2
  client.dispatchEvent({
3
3
  channel,
4
+ channel_id: channel.id,
5
+ channel_type: channel.type,
4
6
  cid: channel.cid,
5
7
  message: newMessage,
6
8
  type: 'message.new',
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.13.0"
2
+ "version": "4.14.0-beta.1"
3
3
  }