stream-chat-react-native-core 5.0.0-offline-support.15 → 5.0.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.
Files changed (72) hide show
  1. package/lib/commonjs/components/Attachment/FileAttachment.js +16 -7
  2. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/Gallery.js +4 -2
  4. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js +15 -0
  6. package/lib/commonjs/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  7. package/lib/commonjs/components/Channel/Channel.js +1 -1
  8. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  9. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  10. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  11. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +1 -1
  12. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  13. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +10 -6
  14. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  15. package/lib/commonjs/components/ImageGallery/ImageGallery.js +23 -21
  16. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  17. package/lib/commonjs/components/Message/Message.js +6 -6
  18. package/lib/commonjs/components/Message/Message.js.map +1 -1
  19. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  20. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  21. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
  22. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  23. package/lib/commonjs/components/MessageList/MessageList.js +1 -1
  24. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  25. package/lib/commonjs/mock-builders/event/messageNew.js +2 -0
  26. package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
  27. package/lib/commonjs/version.json +1 -1
  28. package/lib/module/components/Attachment/FileAttachment.js +16 -7
  29. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  30. package/lib/module/components/Attachment/Gallery.js +4 -2
  31. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  32. package/lib/module/components/Attachment/utils/getGiphyMimeType.js +15 -0
  33. package/lib/module/components/Attachment/utils/getGiphyMimeType.js.map +1 -0
  34. package/lib/module/components/Channel/Channel.js +1 -1
  35. package/lib/module/components/Channel/Channel.js.map +1 -1
  36. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +16 -4
  37. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  38. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +1 -1
  39. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  40. package/lib/module/components/ChannelPreview/ChannelPreview.js +10 -6
  41. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  42. package/lib/module/components/ImageGallery/ImageGallery.js +23 -21
  43. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  44. package/lib/module/components/Message/Message.js +6 -6
  45. package/lib/module/components/Message/Message.js.map +1 -1
  46. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  47. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  48. package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
  49. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  50. package/lib/module/components/MessageList/MessageList.js +1 -1
  51. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  52. package/lib/module/mock-builders/event/messageNew.js +2 -0
  53. package/lib/module/mock-builders/event/messageNew.js.map +1 -1
  54. package/lib/module/version.json +1 -1
  55. package/lib/typescript/components/Attachment/utils/getGiphyMimeType.d.ts +6 -0
  56. package/lib/typescript/components/Message/Message.d.ts +9 -3
  57. package/package.json +3 -3
  58. package/src/components/Attachment/FileAttachment.tsx +3 -0
  59. package/src/components/Attachment/Gallery.tsx +3 -1
  60. package/src/components/Attachment/utils/getGiphyMimeType.ts +13 -0
  61. package/src/components/Channel/Channel.tsx +1 -1
  62. package/src/components/ChannelList/__tests__/ChannelList.test.js +28 -0
  63. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +18 -5
  64. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +1 -1
  65. package/src/components/ChannelPreview/ChannelPreview.tsx +6 -3
  66. package/src/components/ImageGallery/ImageGallery.tsx +2 -1
  67. package/src/components/Message/Message.tsx +9 -1
  68. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +22 -2
  69. package/src/components/Message/MessageSimple/utils/renderText.tsx +1 -1
  70. package/src/components/MessageList/MessageList.tsx +1 -1
  71. package/src/mock-builders/event/messageNew.js +2 -0
  72. package/src/version.json +1 -1
@@ -73,15 +73,23 @@ export type UrlTouchableHandlerPayload = {
73
73
  additionalInfo?: { url?: string };
74
74
  };
75
75
 
76
+ export type FileAttachmentTouchableHandlerPayload<
77
+ StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
78
+ > = {
79
+ emitter: 'fileAttachment';
80
+ additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };
81
+ };
82
+
76
83
  export type TouchableHandlerPayload = {
77
84
  defaultHandler?: () => void;
78
85
  event?: GestureResponderEvent;
79
86
  } & (
80
87
  | {
81
- emitter?: TouchableEmitter;
88
+ emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;
82
89
  }
83
90
  | TextMentionTouchableHandlerPayload
84
91
  | UrlTouchableHandlerPayload
92
+ | FileAttachmentTouchableHandlerPayload
85
93
  );
86
94
 
87
95
  export type MessageTouchableHandlerPayload<
@@ -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
 
@@ -261,7 +261,7 @@ export const renderText = <
261
261
  );
262
262
 
263
263
  const customRules = {
264
- link: { link },
264
+ link: { react: link },
265
265
  list: { react: list },
266
266
  // Truncate long text content in the message overlay
267
267
  paragraph: messageTextNumberOfLines ? { react: paragraphText } : {},
@@ -530,7 +530,7 @@ const MessageListWithContext = <
530
530
  index: number;
531
531
  item: MessageType<StreamChatGenerics>;
532
532
  }) => {
533
- if (!channel || (!channel.initialized && !channel.staticState)) return null;
533
+ if (!channel || (!channel.initialized && !channel.offlineMode)) return null;
534
534
 
535
535
  const lastRead = channel.lastRead();
536
536
 
@@ -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": "5.0.0-offline-support.15"
2
+ "version": "5.0.0"
3
3
  }