stream-chat-react-native-core 3.8.3-next.1 → 3.9.0-next.2

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 (80) hide show
  1. package/lib/commonjs/components/Attachment/Gallery.js +21 -9
  2. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  3. package/lib/commonjs/components/Channel/Channel.js +52 -30
  4. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  5. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +4 -0
  6. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  7. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +4 -0
  8. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  9. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +9 -6
  10. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  11. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +28 -23
  12. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  13. package/lib/commonjs/components/MessageList/MessageList.js +40 -31
  14. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  15. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +1 -1
  16. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  17. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +1 -5
  18. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  19. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  20. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  21. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  22. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  23. package/lib/commonjs/version.json +1 -1
  24. package/lib/module/components/Attachment/Gallery.js +21 -9
  25. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  26. package/lib/module/components/Channel/Channel.js +52 -30
  27. package/lib/module/components/Channel/Channel.js.map +1 -1
  28. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +4 -0
  29. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  30. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +4 -0
  31. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  32. package/lib/module/components/Message/MessageSimple/MessageSimple.js +9 -6
  33. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  34. package/lib/module/components/MessageInput/FileUploadPreview.js +28 -23
  35. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  36. package/lib/module/components/MessageList/MessageList.js +40 -31
  37. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  38. package/lib/module/components/MessageList/hooks/useMessageList.js +1 -1
  39. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  40. package/lib/module/components/MessageList/utils/getGroupStyles.js +1 -5
  41. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  42. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  43. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  44. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  45. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  46. package/lib/module/version.json +1 -1
  47. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  48. package/lib/typescript/components/Channel/Channel.d.ts +3 -1
  49. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  50. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +4 -2
  51. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
  52. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
  53. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +3 -1
  54. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -1
  55. package/package.json +1 -1
  56. package/src/components/Attachment/Gallery.tsx +20 -5
  57. package/src/components/Channel/Channel.tsx +124 -67
  58. package/src/components/Channel/hooks/useCreateChannelContext.ts +4 -0
  59. package/src/components/Channel/hooks/useCreateMessagesContext.ts +4 -0
  60. package/src/components/Message/MessageSimple/MessageSimple.tsx +9 -3
  61. package/src/components/MessageInput/FileUploadPreview.tsx +68 -58
  62. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +778 -730
  63. package/src/components/MessageList/MessageList.tsx +52 -27
  64. package/src/components/MessageList/hooks/useMessageList.ts +1 -1
  65. package/src/components/MessageList/utils/getGroupStyles.ts +3 -8
  66. package/src/contexts/channelContext/ChannelContext.tsx +2 -0
  67. package/src/contexts/messagesContext/MessagesContext.tsx +2 -0
  68. package/src/version.json +1 -1
  69. package/lib/commonjs/components/Channel/utils/debounce.js +0 -20
  70. package/lib/commonjs/components/Channel/utils/debounce.js.map +0 -1
  71. package/lib/commonjs/components/Channel/utils/throttle.js +0 -20
  72. package/lib/commonjs/components/Channel/utils/throttle.js.map +0 -1
  73. package/lib/module/components/Channel/utils/debounce.js +0 -20
  74. package/lib/module/components/Channel/utils/debounce.js.map +0 -1
  75. package/lib/module/components/Channel/utils/throttle.js +0 -20
  76. package/lib/module/components/Channel/utils/throttle.js.map +0 -1
  77. package/lib/typescript/components/Channel/utils/debounce.d.ts +0 -2
  78. package/lib/typescript/components/Channel/utils/throttle.d.ts +0 -2
  79. package/src/components/Channel/utils/debounce.ts +0 -12
  80. package/src/components/Channel/utils/throttle.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"sources":["Gallery.tsx"],"names":["GalleryImage","props","height","uri","rest","error","setError","includes","replace","PixelRatio","getPixelSizeForLayoutSize","Number","MemoizedGalleryImage","React","memo","prevProps","nextProps","styles","StyleSheet","create","flex","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","padding","moreImagesContainer","alignItems","justifyContent","margin","moreImagesText","color","fontSize","fontWeight","GalleryWithContext","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","images","messageId","messageText","onLongPress","onPress","onPressIn","preventPress","setBlurType","setImage","setOverlay","threadList","theme","overlay","colors","blurType","imageGallery","messageSimple","gallery","galleryItemColumn","halfSize","image","size","width","length","galleryImages","slice","reduce","returnArray","currentImage","index","attachmentUrl","image_url","thumb_url","url","groupStyle","toLowerCase","map","column","colIndex","rowIndex","defaultOnPress","event","emitter","defaultHandler","borderBottomLeftRadius","borderBottomRightRadius","absoluteFillObject","backgroundColor","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessageText","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessageText","messageTextEqual","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetBlurType","propSetImage","propSetOverlay","propThreadList","contextSetImage","contextAlignment","contextGroupStyles","contextImages","message","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextAdditionalTouchableProps","contextSetBlurType","contextSetOverlay","reply_count","id","text","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport {\n Image,\n ImageProps,\n PixelRatio,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n} from 'react-native';\n\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst GalleryImage: React.FC<\n Omit<ImageProps, 'height' | 'source'> & {\n height: number | string;\n uri: string;\n }\n> = (props) => {\n const { height, uri, ...rest } = props;\n\n const [error, setError] = useState(false);\n\n return (\n <Image\n key={uri}\n {...rest}\n onError={() => setError(true)}\n source={{\n uri: uri.includes('&h=%2A')\n ? error\n ? uri\n : uri.replace('h=%2A', `h=${PixelRatio.getPixelSizeForLayoutSize(Number(height))}`)\n : uri,\n }}\n testID='image-attachment-single'\n />\n );\n};\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n prevProps.height === nextProps.height && prevProps.uri === nextProps.uri,\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n flex: { flex: 1 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: { flex: 1, padding: 1 },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<ImageGalleryContextValue, 'setImage'> &\n Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'additionalTouchableProps'> &\n Pick<OverlayContextValue, 'setBlurType' | 'setOverlay'> & {\n hasThreadReplies?: boolean;\n messageId?: string;\n messageText?: string;\n };\n\nconst GalleryWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n images,\n messageId,\n messageText,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setBlurType,\n setImage,\n setOverlay,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { overlay },\n imageGallery: { blurType },\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n halfSize,\n image,\n imageContainer,\n moreImagesContainer,\n moreImagesText,\n size,\n width,\n },\n },\n },\n } = useTheme();\n\n if (!images?.length) return null;\n\n // [[{ height: number; url: string; }], [{ height: number; url: string; }, { height: number; url: string; }]]\n const galleryImages = images.slice(0, 4).reduce((returnArray, currentImage, index) => {\n const attachmentUrl = currentImage.image_url || currentImage.thumb_url;\n if (attachmentUrl) {\n const url = makeImageCompatibleUrl(attachmentUrl);\n if (images.length <= 2) {\n returnArray[0] = [...(returnArray[0] || []), { height: size || 200, url }];\n } else if (images.length === 3) {\n if (index === 0) {\n returnArray[0] = [{ height: size || 200, url }];\n } else {\n returnArray[1] = [...(returnArray[1] || []), { height: halfSize || 100, url }];\n }\n } else {\n returnArray[index % 2] = [\n ...(returnArray[index % 2] || []),\n { height: halfSize || 100, url },\n ];\n }\n }\n return returnArray;\n }, [] as { height: number | string; url: string }[][]);\n\n const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n width,\n },\n galleryContainer,\n ]}\n testID='image-multiple-container'\n >\n {galleryImages.map((column, colIndex) => (\n <View\n key={`gallery-item-column-${colIndex}`}\n style={[\n styles.flex,\n {\n flexDirection: images.length === 2 ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n >\n {column.map(({ height, url }, rowIndex) => {\n const defaultOnPress = () => {\n setImage({ messageId, url });\n setBlurType(blurType);\n setOverlay('gallery');\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${url}/${rowIndex}/${images.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height,\n },\n imageContainer,\n ]}\n testID='image-multiple'\n {...additionalTouchableProps}\n >\n <MemoizedGalleryImage\n height={height}\n resizeMode='cover'\n style={[\n styles.flex,\n {\n borderBottomLeftRadius:\n (images.length === 1 ||\n (images.length === 2 && rowIndex === 0) ||\n (images.length === 3 && colIndex === 0 && rowIndex === 0) ||\n (images.length === 4 && colIndex === 0 && rowIndex === 1)) &&\n !messageText &&\n ((groupStyle !== 'left_bottom' && groupStyle !== 'left_single') ||\n (hasThreadReplies && !threadList))\n ? 14\n : 0,\n borderBottomRightRadius:\n (images.length === 1 ||\n (colIndex === 1 && (images.length === 2 || rowIndex === 1))) &&\n !messageText &&\n ((groupStyle !== 'right_bottom' && groupStyle !== 'right_single') ||\n (hasThreadReplies && !threadList))\n ? 14\n : 0,\n borderTopLeftRadius: colIndex === 0 && rowIndex === 0 ? 14 : 0,\n borderTopRightRadius:\n ((colIndex === 1 || images.length === 1) && rowIndex === 0) ||\n (images.length === 3 && colIndex === 0 && rowIndex === 1) ||\n (images.length === 2 && rowIndex === 1)\n ? 14\n : 0,\n },\n image,\n ]}\n uri={url}\n />\n {colIndex === 1 && rowIndex === 1 && images.length > 3 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${images.length - 3}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n })}\n </View>\n ))}\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n messageText: prevMessageText,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n messageText: nextMessageText,\n } = nextProps;\n\n const messageTextEqual = prevMessageText === nextMessageText;\n if (!messageTextEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n image.image_url === nextImages[index].image_url &&\n image.thumb_url === nextImages[index].thumb_url,\n );\n if (!imagesEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: GalleryProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n images: propImages,\n messageId,\n messageText,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setBlurType: propSetBlurType,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n } = props;\n\n const { setImage: contextSetImage } = useImageGalleryContext();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { additionalTouchableProps: contextAdditionalTouchableProps } =\n useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { setBlurType: contextSetBlurType, setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n\n if (!images.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setBlurType = propSetBlurType || contextSetBlurType;\n const setImage = propSetImage || contextSetImage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n images,\n messageId: messageId || message?.id,\n messageText: messageText || message?.text,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setBlurType,\n setImage,\n setOverlay,\n threadList,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
1
+ {"version":3,"sources":["Gallery.tsx"],"names":["GalleryImage","props","height","uri","rest","error","setError","includes","replace","PixelRatio","getPixelSizeForLayoutSize","Number","MemoizedGalleryImage","React","memo","prevProps","nextProps","styles","StyleSheet","create","flex","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","padding","moreImagesContainer","alignItems","justifyContent","margin","moreImagesText","color","fontSize","fontWeight","GalleryWithContext","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","images","legacyImageViewerSwipeBehaviour","message","messageId","messageText","onLongPress","onPress","onPressIn","preventPress","setBlurType","setImage","setImages","setOverlay","threadList","theme","overlay","colors","blurType","imageGallery","messageSimple","gallery","galleryItemColumn","halfSize","image","size","width","length","galleryImages","slice","reduce","returnArray","currentImage","index","attachmentUrl","image_url","thumb_url","url","groupStyle","toLowerCase","map","column","colIndex","rowIndex","defaultOnPress","event","emitter","defaultHandler","borderBottomLeftRadius","borderBottomRightRadius","absoluteFillObject","backgroundColor","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessageText","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessageText","messageTextEqual","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetBlurType","propSetImage","propSetOverlay","propThreadList","contextSetImage","contextAlignment","contextGroupStyles","contextImages","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextAdditionalTouchableProps","contextSetBlurType","contextSetOverlay","reply_count","id","text","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport {\n Image,\n ImageProps,\n PixelRatio,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n} from 'react-native';\n\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst GalleryImage: React.FC<\n Omit<ImageProps, 'height' | 'source'> & {\n height: number | string;\n uri: string;\n }\n> = (props) => {\n const { height, uri, ...rest } = props;\n\n const [error, setError] = useState(false);\n\n return (\n <Image\n key={uri}\n {...rest}\n onError={() => setError(true)}\n source={{\n uri: uri.includes('&h=%2A')\n ? error\n ? uri\n : uri.replace('h=%2A', `h=${PixelRatio.getPixelSizeForLayoutSize(Number(height))}`)\n : uri,\n }}\n testID='image-attachment-single'\n />\n );\n};\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n prevProps.height === nextProps.height && prevProps.uri === nextProps.uri,\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n flex: { flex: 1 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: { flex: 1, padding: 1 },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<ImageGalleryContextValue, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'additionalTouchableProps' | 'legacyImageViewerSwipeBehaviour'\n > &\n Pick<OverlayContextValue, 'setBlurType' | 'setOverlay'> & {\n hasThreadReplies?: boolean;\n messageId?: string;\n messageText?: string;\n };\n\nconst GalleryWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n messageId,\n messageText,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setBlurType,\n setImage,\n setImages,\n setOverlay,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { overlay },\n imageGallery: { blurType },\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n halfSize,\n image,\n imageContainer,\n moreImagesContainer,\n moreImagesText,\n size,\n width,\n },\n },\n },\n } = useTheme();\n\n if (!images?.length) return null;\n\n // [[{ height: number; url: string; }], [{ height: number; url: string; }, { height: number; url: string; }]]\n const galleryImages = images.slice(0, 4).reduce((returnArray, currentImage, index) => {\n const attachmentUrl = currentImage.image_url || currentImage.thumb_url;\n if (attachmentUrl) {\n const url = makeImageCompatibleUrl(attachmentUrl);\n if (images.length <= 2) {\n returnArray[0] = [...(returnArray[0] || []), { height: size || 200, url }];\n } else if (images.length === 3) {\n if (index === 0) {\n returnArray[0] = [{ height: size || 200, url }];\n } else {\n returnArray[1] = [...(returnArray[1] || []), { height: halfSize || 100, url }];\n }\n } else {\n returnArray[index % 2] = [\n ...(returnArray[index % 2] || []),\n { height: halfSize || 100, url },\n ];\n }\n }\n return returnArray;\n }, [] as { height: number | string; url: string }[][]);\n\n const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n width,\n },\n galleryContainer,\n ]}\n testID='image-multiple-container'\n >\n {galleryImages.map((column, colIndex) => (\n <View\n key={`gallery-item-column-${colIndex}`}\n style={[\n styles.flex,\n {\n flexDirection: images.length === 2 ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n >\n {column.map(({ height, url }, rowIndex) => {\n const defaultOnPress = () => {\n if (!legacyImageViewerSwipeBehaviour) {\n setImages([message]);\n }\n setImage({ messageId, url });\n setBlurType(blurType);\n setOverlay('gallery');\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${url}/${rowIndex}/${images.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height,\n },\n imageContainer,\n ]}\n testID='image-multiple'\n {...additionalTouchableProps}\n >\n <MemoizedGalleryImage\n height={height}\n resizeMode='cover'\n style={[\n styles.flex,\n {\n borderBottomLeftRadius:\n (images.length === 1 ||\n (images.length === 2 && rowIndex === 0) ||\n (images.length === 3 && colIndex === 0 && rowIndex === 0) ||\n (images.length === 4 && colIndex === 0 && rowIndex === 1)) &&\n !messageText &&\n ((groupStyle !== 'left_bottom' && groupStyle !== 'left_single') ||\n (hasThreadReplies && !threadList))\n ? 14\n : 0,\n borderBottomRightRadius:\n (images.length === 1 ||\n (colIndex === 1 && (images.length === 2 || rowIndex === 1))) &&\n !messageText &&\n ((groupStyle !== 'right_bottom' && groupStyle !== 'right_single') ||\n (hasThreadReplies && !threadList))\n ? 14\n : 0,\n borderTopLeftRadius: colIndex === 0 && rowIndex === 0 ? 14 : 0,\n borderTopRightRadius:\n ((colIndex === 1 || images.length === 1) && rowIndex === 0) ||\n (images.length === 3 && colIndex === 0 && rowIndex === 1) ||\n (images.length === 2 && rowIndex === 1)\n ? 14\n : 0,\n },\n image,\n ]}\n uri={url}\n />\n {colIndex === 1 && rowIndex === 1 && images.length > 3 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${images.length - 3}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n })}\n </View>\n ))}\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n messageText: prevMessageText,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n messageText: nextMessageText,\n } = nextProps;\n\n const messageTextEqual = prevMessageText === nextMessageText;\n if (!messageTextEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n image.image_url === nextImages[index].image_url &&\n image.thumb_url === nextImages[index].thumb_url,\n );\n if (!imagesEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: GalleryProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n images: propImages,\n messageId,\n messageText,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setBlurType: propSetBlurType,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n } = props;\n\n const { setImage: contextSetImage, setImages } = useImageGalleryContext();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n legacyImageViewerSwipeBehaviour,\n } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { setBlurType: contextSetBlurType, setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n\n if (!images.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setBlurType = propSetBlurType || contextSetBlurType;\n const setImage = propSetImage || contextSetImage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n messageId: messageId || message?.id,\n messageText: messageText || message?.text,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setBlurType,\n setImage,\n setImages,\n setOverlay,\n threadList,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
@@ -23,6 +23,10 @@ var _react = _interopRequireWildcard(require("react"));
23
23
 
24
24
  var _reactNative = require("react-native");
25
25
 
26
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
27
+
28
+ var _throttle = _interopRequireDefault(require("lodash/throttle"));
29
+
26
30
  var _streamChat = require("stream-chat");
27
31
 
28
32
  var _useAppStateListener = require("../../hooks/useAppStateListener");
@@ -41,10 +45,6 @@ var _useCreateTypingContext = require("./hooks/useCreateTypingContext");
41
45
 
42
46
  var _useTargetedMessage2 = require("./hooks/useTargetedMessage");
43
47
 
44
- var _debounce = require("./utils/debounce");
45
-
46
- var _throttle = require("./utils/throttle");
47
-
48
48
  var _Attachment = require("../Attachment/Attachment");
49
49
 
50
50
  var _AttachmentActions = require("../Attachment/AttachmentActions");
@@ -190,6 +190,16 @@ var reactionData = [{
190
190
  }];
191
191
  exports.reactionData = reactionData;
192
192
  var scrollToFirstUnreadThreshold = 4;
193
+ var defaultThrottleInterval = 500;
194
+ var defaultDebounceInterval = 500;
195
+ var throttleOptions = {
196
+ leading: false,
197
+ trailing: true
198
+ };
199
+ var debounceOptions = {
200
+ leading: true,
201
+ trailing: true
202
+ };
193
203
  var unreadMessagesOnInitialLoadLimit = 2;
194
204
 
195
205
  var ChannelWithContext = function ChannelWithContext(props) {
@@ -241,6 +251,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
241
251
  editMessageProp = props.editMessage,
242
252
  _props$EmptyStateIndi = props.EmptyStateIndicator,
243
253
  EmptyStateIndicator = _props$EmptyStateIndi === void 0 ? _EmptyStateIndicator.EmptyStateIndicator : _props$EmptyStateIndi,
254
+ _props$enableMessageG = props.enableMessageGroupingByUser,
255
+ enableMessageGroupingByUser = _props$enableMessageG === void 0 ? true : _props$enableMessageG,
244
256
  _props$enforceUniqueR = props.enforceUniqueReaction,
245
257
  enforceUniqueReaction = _props$enforceUniqueR === void 0 ? false : _props$enforceUniqueR,
246
258
  _props$FileAttachment = props.FileAttachment,
@@ -281,6 +293,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
281
293
  hasImagePicker = _props$hasImagePicker === void 0 ? true : _props$hasImagePicker,
282
294
  _props$hideDateSepara = props.hideDateSeparators,
283
295
  hideDateSeparators = _props$hideDateSepara === void 0 ? false : _props$hideDateSepara,
296
+ _props$hideStickyDate = props.hideStickyDateHeader,
297
+ hideStickyDateHeader = _props$hideStickyDate === void 0 ? false : _props$hideStickyDate,
284
298
  _props$ImageUploadPre = props.ImageUploadPreview,
285
299
  ImageUploadPreview = _props$ImageUploadPre === void 0 ? _ImageUploadPreview.ImageUploadPreview : _props$ImageUploadPre,
286
300
  _props$initialScrollT = props.initialScrollToFirstUnreadMessage,
@@ -297,6 +311,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
297
311
  _props$KeyboardCompat = props.KeyboardCompatibleView,
298
312
  KeyboardCompatibleView = _props$KeyboardCompat === void 0 ? _KeyboardCompatibleView.KeyboardCompatibleView : _props$KeyboardCompat,
299
313
  keyboardVerticalOffset = props.keyboardVerticalOffset,
314
+ _props$legacyImageVie = props.legacyImageViewerSwipeBehaviour,
315
+ legacyImageViewerSwipeBehaviour = _props$legacyImageVie === void 0 ? true : _props$legacyImageVie,
300
316
  _props$LoadingErrorIn = props.LoadingErrorIndicator,
301
317
  LoadingErrorIndicator = _props$LoadingErrorIn === void 0 ? _LoadingErrorIndicator.LoadingErrorIndicator : _props$LoadingErrorIn,
302
318
  _props$LoadingIndicat = props.LoadingIndicator,
@@ -376,6 +392,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
376
392
  setInputRef = props.setInputRef,
377
393
  _props$ShowThreadMess = props.ShowThreadMessageInChannelButton,
378
394
  ShowThreadMessageInChannelButton = _props$ShowThreadMess === void 0 ? _ShowThreadMessageInChannelButton.ShowThreadMessageInChannelButton : _props$ShowThreadMess,
395
+ _props$stateUpdateThr = props.stateUpdateThrottleInterval,
396
+ stateUpdateThrottleInterval = _props$stateUpdateThr === void 0 ? defaultThrottleInterval : _props$stateUpdateThr,
379
397
  StickyHeader = props.StickyHeader,
380
398
  _props$supportedReact = props.supportedReactions,
381
399
  supportedReactions = _props$supportedReact === void 0 ? reactionData : _props$supportedReact,
@@ -553,7 +571,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
553
571
  var isAdmin = (client == null ? void 0 : (_client$user = client.user) == null ? void 0 : _client$user.role) === 'admin' || (channel == null ? void 0 : channel.state.membership.role) === 'admin';
554
572
  var isModerator = (channel == null ? void 0 : channel.state.membership.role) === 'channel_moderator' || (channel == null ? void 0 : channel.state.membership.role) === 'moderator';
555
573
  var isOwner = (channel == null ? void 0 : channel.state.membership.role) === 'owner';
556
- var markRead = (0, _throttle.lightThrottle)(function () {
574
+ var markRead = (0, _react.useRef)((0, _throttle["default"])(function () {
557
575
  var _channel$getConfig;
558
576
 
559
577
  if (channel != null && channel.disconnected || !(channel != null && channel.getConfig != null && (_channel$getConfig = channel.getConfig()) != null && _channel$getConfig.read_events)) {
@@ -565,18 +583,18 @@ var ChannelWithContext = function ChannelWithContext(props) {
565
583
  } else {
566
584
  (0, _streamChat.logChatPromiseExecution)(channel.markRead(), 'mark read');
567
585
  }
568
- });
569
- var copyTypingState = (0, _throttle.lightThrottle)(function () {
586
+ }, defaultThrottleInterval, throttleOptions)).current;
587
+ var copyTypingState = (0, _react.useRef)((0, _throttle["default"])(function () {
570
588
  if (channel) {
571
589
  setTyping((0, _extends2["default"])({}, channel.state.typing));
572
590
  }
573
- });
574
- var copyReadState = (0, _throttle.lightThrottle)(function () {
591
+ }, stateUpdateThrottleInterval, throttleOptions)).current;
592
+ var copyReadState = (0, _react.useRef)((0, _throttle["default"])(function () {
575
593
  if (channel) {
576
594
  setRead((0, _extends2["default"])({}, channel.state.read));
577
595
  }
578
- });
579
- var copyChannelState = (0, _throttle.lightThrottle)(function () {
596
+ }, stateUpdateThrottleInterval, throttleOptions)).current;
597
+ var copyChannelState = (0, _react.useRef)((0, _throttle["default"])(function () {
580
598
  setLoading(false);
581
599
 
582
600
  if (channel) {
@@ -587,7 +605,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
587
605
  setWatcherCount(channel.state.watcher_count);
588
606
  setWatchers((0, _extends2["default"])({}, channel.state.watchers));
589
607
  }
590
- });
608
+ }, stateUpdateThrottleInterval, throttleOptions)).current;
591
609
 
592
610
  var connectionRecoveredHandler = function connectionRecoveredHandler() {
593
611
  if (channel) {
@@ -1454,12 +1472,12 @@ var ChannelWithContext = function ChannelWithContext(props) {
1454
1472
  };
1455
1473
  }();
1456
1474
 
1457
- var loadMoreFinished = (0, _debounce.heavyDebounce)(function (updatedHasMore, newMessages) {
1475
+ var loadMoreFinished = (0, _react.useRef)((0, _debounce["default"])(function (updatedHasMore, newMessages) {
1458
1476
  setLoadingMore(false);
1459
1477
  setError(false);
1460
1478
  setHasMore(updatedHasMore);
1461
1479
  setMessages(newMessages);
1462
- });
1480
+ }, defaultDebounceInterval, debounceOptions)).current;
1463
1481
 
1464
1482
  var loadMore = function () {
1465
1483
  var _ref25 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee15() {
@@ -1618,11 +1636,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
1618
1636
  };
1619
1637
  }();
1620
1638
 
1621
- var loadMoreRecentFinished = (0, _debounce.heavyDebounce)(function (newMessages) {
1639
+ var loadMoreRecentFinished = (0, _react.useRef)((0, _debounce["default"])(function (newMessages) {
1622
1640
  setLoadingMoreRecent(false);
1623
1641
  setMessages(newMessages);
1624
1642
  setError(false);
1625
- });
1643
+ }, defaultDebounceInterval, debounceOptions)).current;
1626
1644
 
1627
1645
  var editMessage = function editMessage(updatedMessage) {
1628
1646
  return doUpdateMessageRequest ? doUpdateMessageRequest((channel == null ? void 0 : channel.cid) || '', updatedMessage) : client.updateMessage(updatedMessage);
@@ -1667,11 +1685,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
1667
1685
  setThread(null);
1668
1686
  setThreadMessages([]);
1669
1687
  }, [setThread, setThreadMessages]);
1670
- var loadMoreThreadFinished = (0, _debounce.heavyDebounce)(function (newThreadHasMore, updatedThreadMessages) {
1688
+ var loadMoreThreadFinished = (0, _react.useRef)((0, _debounce["default"])(function (newThreadHasMore, updatedThreadMessages) {
1671
1689
  setThreadHasMore(newThreadHasMore);
1672
1690
  setThreadLoadingMore(false);
1673
1691
  setThreadMessages(updatedThreadMessages);
1674
- });
1692
+ }, defaultDebounceInterval, debounceOptions)).current;
1675
1693
 
1676
1694
  var loadMoreThread = function () {
1677
1695
  var _ref27 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee17() {
@@ -1742,12 +1760,14 @@ var ChannelWithContext = function ChannelWithContext(props) {
1742
1760
  channel: channel,
1743
1761
  disabled: !!(channel != null && (_channel$data = channel.data) != null && _channel$data.frozen) && disableIfFrozenChannel,
1744
1762
  EmptyStateIndicator: EmptyStateIndicator,
1763
+ enableMessageGroupingByUser: enableMessageGroupingByUser,
1745
1764
  enforceUniqueReaction: enforceUniqueReaction,
1746
1765
  error: error,
1747
1766
  giphyEnabled: giphyEnabled != null ? giphyEnabled : !!((_ref28 = (channel == null ? void 0 : channel.getConfig == null ? void 0 : (_channel$getConfig2 = channel.getConfig()) == null ? void 0 : _channel$getConfig2.commands) || []) != null && _ref28.some(function (command) {
1748
1767
  return command.name === 'giphy';
1749
1768
  })),
1750
1769
  hideDateSeparators: hideDateSeparators,
1770
+ hideStickyDateHeader: hideStickyDateHeader,
1751
1771
  isAdmin: isAdmin,
1752
1772
  isModerator: isModerator,
1753
1773
  isOwner: isOwner,
@@ -1834,6 +1854,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1834
1854
  disableTypingIndicator: disableTypingIndicator,
1835
1855
  dismissKeyboardOnMessageTouch: dismissKeyboardOnMessageTouch,
1836
1856
  editMessage: editMessageProp,
1857
+ enableMessageGroupingByUser: enableMessageGroupingByUser,
1837
1858
  FileAttachment: FileAttachment,
1838
1859
  FileAttachmentGroup: FileAttachmentGroup,
1839
1860
  FileAttachmentIcon: FileAttachmentIcon,
@@ -1856,6 +1877,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1856
1877
  initialScrollToFirstUnreadMessage: initialScrollToFirstUnreadMessage,
1857
1878
  InlineDateSeparator: InlineDateSeparator,
1858
1879
  InlineUnreadIndicator: InlineUnreadIndicator,
1880
+ legacyImageViewerSwipeBehaviour: legacyImageViewerSwipeBehaviour,
1859
1881
  markdownRules: markdownRules,
1860
1882
  Message: Message,
1861
1883
  messageActions: messageActions,
@@ -1925,7 +1947,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1925
1947
  __self: _this,
1926
1948
  __source: {
1927
1949
  fileName: _jsxFileName,
1928
- lineNumber: 1710,
1950
+ lineNumber: 1767,
1929
1951
  columnNumber: 12
1930
1952
  }
1931
1953
  });
@@ -1940,7 +1962,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1940
1962
  __self: _this,
1941
1963
  __source: {
1942
1964
  fileName: _jsxFileName,
1943
- lineNumber: 1715,
1965
+ lineNumber: 1772,
1944
1966
  columnNumber: 7
1945
1967
  }
1946
1968
  }, t('Please select a channel first'));
@@ -1954,7 +1976,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1954
1976
  __self: _this,
1955
1977
  __source: {
1956
1978
  fileName: _jsxFileName,
1957
- lineNumber: 1722,
1979
+ lineNumber: 1779,
1958
1980
  columnNumber: 5
1959
1981
  }
1960
1982
  }), _react["default"].createElement(_ChannelContext.ChannelProvider, {
@@ -1962,7 +1984,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1962
1984
  __self: _this,
1963
1985
  __source: {
1964
1986
  fileName: _jsxFileName,
1965
- lineNumber: 1728,
1987
+ lineNumber: 1785,
1966
1988
  columnNumber: 7
1967
1989
  }
1968
1990
  }, _react["default"].createElement(_TypingContext.TypingProvider, {
@@ -1970,7 +1992,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1970
1992
  __self: _this,
1971
1993
  __source: {
1972
1994
  fileName: _jsxFileName,
1973
- lineNumber: 1729,
1995
+ lineNumber: 1786,
1974
1996
  columnNumber: 9
1975
1997
  }
1976
1998
  }, _react["default"].createElement(_PaginatedMessageListContext.PaginatedMessageListProvider, {
@@ -1978,7 +2000,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1978
2000
  __self: _this,
1979
2001
  __source: {
1980
2002
  fileName: _jsxFileName,
1981
- lineNumber: 1730,
2003
+ lineNumber: 1787,
1982
2004
  columnNumber: 11
1983
2005
  }
1984
2006
  }, _react["default"].createElement(_MessagesContext.MessagesProvider, {
@@ -1986,7 +2008,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1986
2008
  __self: _this,
1987
2009
  __source: {
1988
2010
  fileName: _jsxFileName,
1989
- lineNumber: 1731,
2011
+ lineNumber: 1788,
1990
2012
  columnNumber: 13
1991
2013
  }
1992
2014
  }, _react["default"].createElement(_ThreadContext.ThreadProvider, {
@@ -1994,7 +2016,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1994
2016
  __self: _this,
1995
2017
  __source: {
1996
2018
  fileName: _jsxFileName,
1997
- lineNumber: 1732,
2019
+ lineNumber: 1789,
1998
2020
  columnNumber: 15
1999
2021
  }
2000
2022
  }, _react["default"].createElement(_SuggestionsContext.SuggestionsProvider, {
@@ -2002,7 +2024,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2002
2024
  __self: _this,
2003
2025
  __source: {
2004
2026
  fileName: _jsxFileName,
2005
- lineNumber: 1733,
2027
+ lineNumber: 1790,
2006
2028
  columnNumber: 17
2007
2029
  }
2008
2030
  }, _react["default"].createElement(_MessageInputContext.MessageInputProvider, {
@@ -2010,7 +2032,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2010
2032
  __self: _this,
2011
2033
  __source: {
2012
2034
  fileName: _jsxFileName,
2013
- lineNumber: 1734,
2035
+ lineNumber: 1791,
2014
2036
  columnNumber: 19
2015
2037
  }
2016
2038
  }, _react["default"].createElement(_reactNative.View, {
@@ -2020,7 +2042,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2020
2042
  __self: _this,
2021
2043
  __source: {
2022
2044
  fileName: _jsxFileName,
2023
- lineNumber: 1735,
2045
+ lineNumber: 1792,
2024
2046
  columnNumber: 21
2025
2047
  }
2026
2048
  }, children)))))))));
@@ -2040,7 +2062,7 @@ var Channel = function Channel(props) {
2040
2062
  __self: _this,
2041
2063
  __source: {
2042
2064
  fileName: _jsxFileName,
2043
- lineNumber: 1780,
2065
+ lineNumber: 1837,
2044
2066
  columnNumber: 5
2045
2067
  }
2046
2068
  }));