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":["useCreateChannelContext.ts"],"names":["useCreateChannelContext","channel","disabled","EmptyStateIndicator","enforceUniqueReaction","error","giphyEnabled","hideDateSeparators","isAdmin","isModerator","isOwner","lastRead","loadChannelAtMessage","loading","LoadingIndicator","markRead","maxTimeBetweenGroupedMessages","members","NetworkDownIndicator","read","readEventsEnabled","reloadChannel","scrollToFirstUnreadThreshold","setLastRead","setTargetedMessage","StickyHeader","targetedMessage","typingEventsEnabled","watcherCount","watchers","channelId","id","lastReadTime","getTime","membersLength","Object","keys","length","readUsers","values","readUsersLength","readUsersLastReads","map","last_read","toISOString","join","channelContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport const useCreateChannelContext = <\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 channel,\n disabled,\n EmptyStateIndicator,\n enforceUniqueReaction,\n error,\n giphyEnabled,\n hideDateSeparators,\n isAdmin,\n isModerator,\n isOwner,\n lastRead,\n loadChannelAtMessage,\n loading,\n LoadingIndicator,\n markRead,\n maxTimeBetweenGroupedMessages,\n members,\n NetworkDownIndicator,\n read,\n readEventsEnabled,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setLastRead,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n typingEventsEnabled,\n watcherCount,\n watchers,\n}: ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>) => {\n const channelId = channel?.id;\n const lastReadTime = lastRead?.getTime();\n const membersLength = Object.keys(members).length;\n\n const readUsers = Object.values(read);\n const readUsersLength = readUsers.length;\n const readUsersLastReads = readUsers.map(({ last_read }) => last_read.toISOString()).join();\n\n const channelContext: ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us> = useMemo(\n () => ({\n channel,\n disabled,\n EmptyStateIndicator,\n enforceUniqueReaction,\n error,\n giphyEnabled,\n hideDateSeparators,\n isAdmin,\n isModerator,\n isOwner,\n lastRead,\n loadChannelAtMessage,\n loading,\n LoadingIndicator,\n markRead,\n maxTimeBetweenGroupedMessages,\n members,\n NetworkDownIndicator,\n read,\n readEventsEnabled,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setLastRead,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n typingEventsEnabled,\n watcherCount,\n watchers,\n }),\n [\n channelId,\n disabled,\n error,\n lastReadTime,\n loading,\n membersLength,\n readEventsEnabled,\n readUsersLength,\n readUsersLastReads,\n targetedMessage,\n typingEventsEnabled,\n watcherCount,\n ],\n );\n\n return channelContext;\n};\n"]}
1
+ {"version":3,"sources":["useCreateChannelContext.ts"],"names":["useCreateChannelContext","channel","disabled","EmptyStateIndicator","enableMessageGroupingByUser","enforceUniqueReaction","error","giphyEnabled","hideDateSeparators","hideStickyDateHeader","isAdmin","isModerator","isOwner","lastRead","loadChannelAtMessage","loading","LoadingIndicator","markRead","maxTimeBetweenGroupedMessages","members","NetworkDownIndicator","read","readEventsEnabled","reloadChannel","scrollToFirstUnreadThreshold","setLastRead","setTargetedMessage","StickyHeader","targetedMessage","typingEventsEnabled","watcherCount","watchers","channelId","id","lastReadTime","getTime","membersLength","Object","keys","length","readUsers","values","readUsersLength","readUsersLastReads","map","last_read","toISOString","join","channelContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport const useCreateChannelContext = <\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 channel,\n disabled,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n enforceUniqueReaction,\n error,\n giphyEnabled,\n hideDateSeparators,\n hideStickyDateHeader,\n isAdmin,\n isModerator,\n isOwner,\n lastRead,\n loadChannelAtMessage,\n loading,\n LoadingIndicator,\n markRead,\n maxTimeBetweenGroupedMessages,\n members,\n NetworkDownIndicator,\n read,\n readEventsEnabled,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setLastRead,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n typingEventsEnabled,\n watcherCount,\n watchers,\n}: ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>) => {\n const channelId = channel?.id;\n const lastReadTime = lastRead?.getTime();\n const membersLength = Object.keys(members).length;\n\n const readUsers = Object.values(read);\n const readUsersLength = readUsers.length;\n const readUsersLastReads = readUsers.map(({ last_read }) => last_read.toISOString()).join();\n\n const channelContext: ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us> = useMemo(\n () => ({\n channel,\n disabled,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n enforceUniqueReaction,\n error,\n giphyEnabled,\n hideDateSeparators,\n hideStickyDateHeader,\n isAdmin,\n isModerator,\n isOwner,\n lastRead,\n loadChannelAtMessage,\n loading,\n LoadingIndicator,\n markRead,\n maxTimeBetweenGroupedMessages,\n members,\n NetworkDownIndicator,\n read,\n readEventsEnabled,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setLastRead,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n typingEventsEnabled,\n watcherCount,\n watchers,\n }),\n [\n channelId,\n disabled,\n error,\n lastReadTime,\n loading,\n membersLength,\n readEventsEnabled,\n readUsersLength,\n readUsersLastReads,\n targetedMessage,\n typingEventsEnabled,\n watcherCount,\n ],\n );\n\n return channelContext;\n};\n"]}
@@ -22,6 +22,7 @@ var useCreateMessagesContext = function useCreateMessagesContext(_ref) {
22
22
  disableTypingIndicator = _ref.disableTypingIndicator,
23
23
  dismissKeyboardOnMessageTouch = _ref.dismissKeyboardOnMessageTouch,
24
24
  editMessage = _ref.editMessage,
25
+ enableMessageGroupingByUser = _ref.enableMessageGroupingByUser,
25
26
  FileAttachment = _ref.FileAttachment,
26
27
  FileAttachmentGroup = _ref.FileAttachmentGroup,
27
28
  FileAttachmentIcon = _ref.FileAttachmentIcon,
@@ -44,6 +45,7 @@ var useCreateMessagesContext = function useCreateMessagesContext(_ref) {
44
45
  initialScrollToFirstUnreadMessage = _ref.initialScrollToFirstUnreadMessage,
45
46
  InlineDateSeparator = _ref.InlineDateSeparator,
46
47
  InlineUnreadIndicator = _ref.InlineUnreadIndicator,
48
+ legacyImageViewerSwipeBehaviour = _ref.legacyImageViewerSwipeBehaviour,
47
49
  markdownRules = _ref.markdownRules,
48
50
  Message = _ref.Message,
49
51
  messageActions = _ref.messageActions,
@@ -108,6 +110,7 @@ var useCreateMessagesContext = function useCreateMessagesContext(_ref) {
108
110
  disableTypingIndicator: disableTypingIndicator,
109
111
  dismissKeyboardOnMessageTouch: dismissKeyboardOnMessageTouch,
110
112
  editMessage: editMessage,
113
+ enableMessageGroupingByUser: enableMessageGroupingByUser,
111
114
  FileAttachment: FileAttachment,
112
115
  FileAttachmentGroup: FileAttachmentGroup,
113
116
  FileAttachmentIcon: FileAttachmentIcon,
@@ -130,6 +133,7 @@ var useCreateMessagesContext = function useCreateMessagesContext(_ref) {
130
133
  initialScrollToFirstUnreadMessage: initialScrollToFirstUnreadMessage,
131
134
  InlineDateSeparator: InlineDateSeparator,
132
135
  InlineUnreadIndicator: InlineUnreadIndicator,
136
+ legacyImageViewerSwipeBehaviour: legacyImageViewerSwipeBehaviour,
133
137
  markdownRules: markdownRules,
134
138
  Message: Message,
135
139
  messageActions: messageActions,
@@ -1 +1 @@
1
- {"version":3,"sources":["useCreateMessagesContext.ts"],"names":["useCreateMessagesContext","additionalTouchableProps","animatedLongPress","Attachment","AttachmentActions","blockUser","Card","CardCover","CardFooter","CardHeader","channelId","copyMessage","DateHeader","deleteMessage","disableTypingIndicator","dismissKeyboardOnMessageTouch","editMessage","FileAttachment","FileAttachmentGroup","FileAttachmentIcon","flagMessage","FlatList","forceAlignMessages","formatDate","Gallery","Giphy","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handleQuotedReply","handleReaction","handleRetry","handleThreadReply","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","markdownRules","Message","messageActions","MessageAvatar","MessageContent","messageContentOrder","MessageDeleted","MessageFooter","MessageHeader","MessageList","MessageReplies","MessageRepliesAvatars","MessageSimple","MessageStatus","MessageSystem","MessageText","mutesEnabled","muteUser","myMessageTheme","onDoubleTapMessage","onLongPressMessage","onPressInMessage","onPressMessage","OverlayReactionList","quotedRepliesEnabled","quotedReply","ReactionList","reactionsEnabled","removeMessage","Reply","retry","retrySendMessage","ScrollToBottomButton","selectReaction","setEditingState","setQuotedMessageState","supportedReactions","threadRepliesEnabled","threadReply","TypingIndicator","TypingIndicatorContainer","updateMessage","UrlPreview","additionalTouchablePropsLength","Object","keys","length","markdownRulesLength","messageContentOrderValue","join","supportedReactionsLength","messagesContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { MessagesContextValue } from '../../../contexts/messagesContext/MessagesContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport const useCreateMessagesContext = <\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 additionalTouchableProps,\n animatedLongPress,\n Attachment,\n AttachmentActions,\n blockUser,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n channelId,\n copyMessage,\n DateHeader,\n deleteMessage,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n editMessage,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n flagMessage,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n mutesEnabled,\n muteUser,\n myMessageTheme,\n onDoubleTapMessage,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n quotedRepliesEnabled,\n quotedReply,\n ReactionList,\n reactionsEnabled,\n removeMessage,\n Reply,\n retry,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n threadRepliesEnabled,\n threadReply,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n}: MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const additionalTouchablePropsLength = Object.keys(additionalTouchableProps || {}).length;\n const markdownRulesLength = Object.keys(markdownRules || {}).length;\n const messageContentOrderValue = messageContentOrder.join();\n const supportedReactionsLength = supportedReactions.length;\n\n const messagesContext: MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us> = useMemo(\n () => ({\n additionalTouchableProps,\n animatedLongPress,\n Attachment,\n AttachmentActions,\n blockUser,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n copyMessage,\n DateHeader,\n deleteMessage,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n editMessage,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n flagMessage,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n mutesEnabled,\n muteUser,\n myMessageTheme,\n onDoubleTapMessage,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n quotedRepliesEnabled,\n quotedReply,\n ReactionList,\n reactionsEnabled,\n removeMessage,\n Reply,\n retry,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n threadRepliesEnabled,\n threadReply,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n }),\n [\n additionalTouchablePropsLength,\n channelId,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n initialScrollToFirstUnreadMessage,\n markdownRulesLength,\n messageContentOrderValue,\n supportedReactionsLength,\n ],\n );\n\n return messagesContext;\n};\n"]}
1
+ {"version":3,"sources":["useCreateMessagesContext.ts"],"names":["useCreateMessagesContext","additionalTouchableProps","animatedLongPress","Attachment","AttachmentActions","blockUser","Card","CardCover","CardFooter","CardHeader","channelId","copyMessage","DateHeader","deleteMessage","disableTypingIndicator","dismissKeyboardOnMessageTouch","editMessage","enableMessageGroupingByUser","FileAttachment","FileAttachmentGroup","FileAttachmentIcon","flagMessage","FlatList","forceAlignMessages","formatDate","Gallery","Giphy","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handleQuotedReply","handleReaction","handleRetry","handleThreadReply","initialScrollToFirstUnreadMessage","InlineDateSeparator","InlineUnreadIndicator","legacyImageViewerSwipeBehaviour","markdownRules","Message","messageActions","MessageAvatar","MessageContent","messageContentOrder","MessageDeleted","MessageFooter","MessageHeader","MessageList","MessageReplies","MessageRepliesAvatars","MessageSimple","MessageStatus","MessageSystem","MessageText","mutesEnabled","muteUser","myMessageTheme","onDoubleTapMessage","onLongPressMessage","onPressInMessage","onPressMessage","OverlayReactionList","quotedRepliesEnabled","quotedReply","ReactionList","reactionsEnabled","removeMessage","Reply","retry","retrySendMessage","ScrollToBottomButton","selectReaction","setEditingState","setQuotedMessageState","supportedReactions","threadRepliesEnabled","threadReply","TypingIndicator","TypingIndicatorContainer","updateMessage","UrlPreview","additionalTouchablePropsLength","Object","keys","length","markdownRulesLength","messageContentOrderValue","join","supportedReactionsLength","messagesContext"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\n\nimport type { MessagesContextValue } from '../../../contexts/messagesContext/MessagesContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport const useCreateMessagesContext = <\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 additionalTouchableProps,\n animatedLongPress,\n Attachment,\n AttachmentActions,\n blockUser,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n channelId,\n copyMessage,\n DateHeader,\n deleteMessage,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n editMessage,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n flagMessage,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n mutesEnabled,\n muteUser,\n myMessageTheme,\n onDoubleTapMessage,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n quotedRepliesEnabled,\n quotedReply,\n ReactionList,\n reactionsEnabled,\n removeMessage,\n Reply,\n retry,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n threadRepliesEnabled,\n threadReply,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n}: MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const additionalTouchablePropsLength = Object.keys(additionalTouchableProps || {}).length;\n const markdownRulesLength = Object.keys(markdownRules || {}).length;\n const messageContentOrderValue = messageContentOrder.join();\n const supportedReactionsLength = supportedReactions.length;\n\n const messagesContext: MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us> = useMemo(\n () => ({\n additionalTouchableProps,\n animatedLongPress,\n Attachment,\n AttachmentActions,\n blockUser,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n copyMessage,\n DateHeader,\n deleteMessage,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n editMessage,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n flagMessage,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n Giphy,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n initialScrollToFirstUnreadMessage,\n InlineDateSeparator,\n InlineUnreadIndicator,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n mutesEnabled,\n muteUser,\n myMessageTheme,\n onDoubleTapMessage,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n quotedRepliesEnabled,\n quotedReply,\n ReactionList,\n reactionsEnabled,\n removeMessage,\n Reply,\n retry,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n threadRepliesEnabled,\n threadReply,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n }),\n [\n additionalTouchablePropsLength,\n channelId,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n initialScrollToFirstUnreadMessage,\n markdownRulesLength,\n messageContentOrderValue,\n supportedReactionsLength,\n ],\n );\n\n return messagesContext;\n};\n"]}
@@ -40,6 +40,7 @@ var MessageSimpleWithContext = function MessageSimpleWithContext(props) {
40
40
 
41
41
  var alignment = props.alignment,
42
42
  channel = props.channel,
43
+ enableMessageGroupingByUser = props.enableMessageGroupingByUser,
43
44
  groupStyles = props.groupStyles,
44
45
  hasReactions = props.hasReactions,
45
46
  message = props.message,
@@ -61,21 +62,21 @@ var MessageSimpleWithContext = function MessageSimpleWithContext(props) {
61
62
  return _react["default"].createElement(_reactNative.View, {
62
63
  style: [styles.container, {
63
64
  justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',
64
- marginBottom: hasMarginBottom ? isVeryLastMessage ? 30 : 8 : 0,
65
+ marginBottom: hasMarginBottom ? isVeryLastMessage && enableMessageGroupingByUser ? 30 : 8 : 0,
65
66
  marginTop: showReactions ? 2 : 0
66
67
  }, container],
67
68
  testID: "message-simple-wrapper",
68
69
  __self: _this,
69
70
  __source: {
70
71
  fileName: _jsxFileName,
71
- lineNumber: 87,
72
+ lineNumber: 88,
72
73
  columnNumber: 5
73
74
  }
74
75
  }, alignment === 'left' && _react["default"].createElement(MessageAvatar, {
75
76
  __self: _this,
76
77
  __source: {
77
78
  fileName: _jsxFileName,
78
- lineNumber: 99,
79
+ lineNumber: 104,
79
80
  columnNumber: 32
80
81
  }
81
82
  }), _react["default"].createElement(MessageContent, {
@@ -83,7 +84,7 @@ var MessageSimpleWithContext = function MessageSimpleWithContext(props) {
83
84
  __self: _this,
84
85
  __source: {
85
86
  fileName: _jsxFileName,
86
- lineNumber: 100,
87
+ lineNumber: 105,
87
88
  columnNumber: 7
88
89
  }
89
90
  }), showReactions && _react["default"].createElement(ReactionList, {
@@ -91,7 +92,7 @@ var MessageSimpleWithContext = function MessageSimpleWithContext(props) {
91
92
  __self: _this,
92
93
  __source: {
93
94
  fileName: _jsxFileName,
94
- lineNumber: 101,
95
+ lineNumber: 106,
95
96
  columnNumber: 25
96
97
  }
97
98
  }));
@@ -147,6 +148,7 @@ var MessageSimple = function MessageSimple(props) {
147
148
  message = _useMessageContext.message;
148
149
 
149
150
  var _useMessagesContext = (0, _MessagesContext.useMessagesContext)(),
151
+ enableMessageGroupingByUser = _useMessagesContext.enableMessageGroupingByUser,
150
152
  MessageAvatar = _useMessagesContext.MessageAvatar,
151
153
  MessageContent = _useMessagesContext.MessageContent,
152
154
  ReactionList = _useMessagesContext.ReactionList;
@@ -154,6 +156,7 @@ var MessageSimple = function MessageSimple(props) {
154
156
  return _react["default"].createElement(MemoizedMessageSimple, (0, _extends2["default"])({
155
157
  alignment: alignment,
156
158
  channel: channel,
159
+ enableMessageGroupingByUser: enableMessageGroupingByUser,
157
160
  groupStyles: groupStyles,
158
161
  hasReactions: hasReactions,
159
162
  message: message,
@@ -164,7 +167,7 @@ var MessageSimple = function MessageSimple(props) {
164
167
  __self: _this,
165
168
  __source: {
166
169
  fileName: _jsxFileName,
167
- lineNumber: 218,
170
+ lineNumber: 223,
168
171
  columnNumber: 5
169
172
  }
170
173
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["MessageSimple.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","MessageSimpleWithContext","props","alignment","channel","groupStyles","hasReactions","message","MessageAvatar","MessageContent","ReactionList","theme","messageSimple","messageContentWidth","setMessageContentWidth","isVeryLastMessage","state","messages","length","id","hasMarginBottom","includes","showReactions","justifyContent","marginBottom","marginTop","areEqual","prevProps","nextProps","prevChannel","prevGroupStyles","prevHasReactions","prevMessage","nextChannel","nextGroupStyles","nextHasReactions","nextMessage","hasReactionsEqual","repliesEqual","reply_count","groupStylesEqual","JSON","stringify","messageEqual","deleted_at","status","type","text","quotedMessageEqual","quoted_message","channelEqual","prevAttachments","attachments","nextAttachments","attachmentsEqual","Array","isArray","every","attachment","index","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","MemoizedMessageSimple","React","memo","MessageSimple","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\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 styles = StyleSheet.create({\n container: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n});\n\nexport type MessageSimplePropsWithContext<\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<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'alignment' | 'channel' | 'groupStyles' | 'hasReactions' | 'message'\n> &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'MessageAvatar' | 'MessageContent' | 'ReactionList'\n >;\n\nconst MessageSimpleWithContext = <\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: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n channel,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n ReactionList,\n } = props;\n\n const {\n theme: {\n messageSimple: { container },\n },\n } = useTheme();\n\n const [messageContentWidth, setMessageContentWidth] = useState(0);\n\n const isVeryLastMessage =\n channel?.state.messages[channel?.state.messages.length - 1]?.id === message.id;\n\n const hasMarginBottom = groupStyles.includes('single') || groupStyles.includes('bottom');\n\n const showReactions = hasReactions && ReactionList;\n\n return (\n <View\n style={[\n styles.container,\n {\n justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',\n marginBottom: hasMarginBottom ? (isVeryLastMessage ? 30 : 8) : 0,\n marginTop: showReactions ? 2 : 0,\n },\n container,\n ]}\n testID='message-simple-wrapper'\n >\n {alignment === 'left' && <MessageAvatar />}\n <MessageContent setMessageContentWidth={setMessageContentWidth} />\n {showReactions && <ReactionList messageContentWidth={messageContentWidth} />}\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: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n channel: prevChannel,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n message: prevMessage,\n } = prevProps;\n const {\n channel: nextChannel,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n message: nextMessage,\n } = nextProps;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const groupStylesEqual = JSON.stringify(prevGroupStyles) === JSON.stringify(nextGroupStyles);\n if (!groupStylesEqual) return false;\n\n const messageEqual =\n prevMessage.deleted_at === nextMessage.deleted_at &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text;\n if (!messageEqual) return false;\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n prevMessage.quoted_message?.deleted_at === nextMessage.quoted_message?.deleted_at;\n\n if (!quotedMessageEqual) return false;\n\n const channelEqual = prevChannel?.state.messages.length === nextChannel?.state.messages.length;\n if (!channelEqual) return false;\n\n const prevAttachments = prevMessage.attachments;\n const nextAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevAttachments) && Array.isArray(nextAttachments)\n ? prevAttachments.length === nextAttachments.length &&\n prevAttachments.every(\n (attachment, index) =>\n attachment.image_url === nextAttachments[index].image_url &&\n attachment.og_scrape_url === nextAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextAttachments[index].thumb_url,\n )\n : prevAttachments === nextAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageSimple = React.memo(\n MessageSimpleWithContext,\n areEqual,\n) as typeof MessageSimpleWithContext;\n\nexport type MessageSimpleProps<\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<MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n *\n * Message UI component\n */\nexport const MessageSimple = <\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: MessageSimpleProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, channel, groupStyles, hasReactions, message } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { MessageAvatar, MessageContent, ReactionList } =\n useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessageSimple<At, Ch, Co, Ev, Me, Re, Us>\n {...{\n alignment,\n channel,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n ReactionList,\n }}\n {...props}\n />\n );\n};\n\nMessageSimple.displayName = 'MessageSimple{messageSimple{container}}';\n"]}
1
+ {"version":3,"sources":["MessageSimple.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","MessageSimpleWithContext","props","alignment","channel","enableMessageGroupingByUser","groupStyles","hasReactions","message","MessageAvatar","MessageContent","ReactionList","theme","messageSimple","messageContentWidth","setMessageContentWidth","isVeryLastMessage","state","messages","length","id","hasMarginBottom","includes","showReactions","justifyContent","marginBottom","marginTop","areEqual","prevProps","nextProps","prevChannel","prevGroupStyles","prevHasReactions","prevMessage","nextChannel","nextGroupStyles","nextHasReactions","nextMessage","hasReactionsEqual","repliesEqual","reply_count","groupStylesEqual","JSON","stringify","messageEqual","deleted_at","status","type","text","quotedMessageEqual","quoted_message","channelEqual","prevAttachments","attachments","nextAttachments","attachmentsEqual","Array","isArray","every","attachment","index","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","MemoizedMessageSimple","React","memo","MessageSimple","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\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 styles = StyleSheet.create({\n container: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n});\n\nexport type MessageSimplePropsWithContext<\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<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'alignment' | 'channel' | 'groupStyles' | 'hasReactions' | 'message'\n> &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'enableMessageGroupingByUser' | 'MessageAvatar' | 'MessageContent' | 'ReactionList'\n >;\n\nconst MessageSimpleWithContext = <\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: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n channel,\n enableMessageGroupingByUser,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n ReactionList,\n } = props;\n\n const {\n theme: {\n messageSimple: { container },\n },\n } = useTheme();\n\n const [messageContentWidth, setMessageContentWidth] = useState(0);\n\n const isVeryLastMessage =\n channel?.state.messages[channel?.state.messages.length - 1]?.id === message.id;\n\n const hasMarginBottom = groupStyles.includes('single') || groupStyles.includes('bottom');\n\n const showReactions = hasReactions && ReactionList;\n\n return (\n <View\n style={[\n styles.container,\n {\n justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',\n marginBottom: hasMarginBottom\n ? isVeryLastMessage && enableMessageGroupingByUser\n ? 30\n : 8\n : 0,\n marginTop: showReactions ? 2 : 0,\n },\n container,\n ]}\n testID='message-simple-wrapper'\n >\n {alignment === 'left' && <MessageAvatar />}\n <MessageContent setMessageContentWidth={setMessageContentWidth} />\n {showReactions && <ReactionList messageContentWidth={messageContentWidth} />}\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: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n channel: prevChannel,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n message: prevMessage,\n } = prevProps;\n const {\n channel: nextChannel,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n message: nextMessage,\n } = nextProps;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const groupStylesEqual = JSON.stringify(prevGroupStyles) === JSON.stringify(nextGroupStyles);\n if (!groupStylesEqual) return false;\n\n const messageEqual =\n prevMessage.deleted_at === nextMessage.deleted_at &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text;\n if (!messageEqual) return false;\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n prevMessage.quoted_message?.deleted_at === nextMessage.quoted_message?.deleted_at;\n\n if (!quotedMessageEqual) return false;\n\n const channelEqual = prevChannel?.state.messages.length === nextChannel?.state.messages.length;\n if (!channelEqual) return false;\n\n const prevAttachments = prevMessage.attachments;\n const nextAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevAttachments) && Array.isArray(nextAttachments)\n ? prevAttachments.length === nextAttachments.length &&\n prevAttachments.every(\n (attachment, index) =>\n attachment.image_url === nextAttachments[index].image_url &&\n attachment.og_scrape_url === nextAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextAttachments[index].thumb_url,\n )\n : prevAttachments === nextAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageSimple = React.memo(\n MessageSimpleWithContext,\n areEqual,\n) as typeof MessageSimpleWithContext;\n\nexport type MessageSimpleProps<\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<MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n *\n * Message UI component\n */\nexport const MessageSimple = <\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: MessageSimpleProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, channel, groupStyles, hasReactions, message } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { enableMessageGroupingByUser, MessageAvatar, MessageContent, ReactionList } =\n useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessageSimple<At, Ch, Co, Ev, Me, Re, Us>\n {...{\n alignment,\n channel,\n enableMessageGroupingByUser,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n ReactionList,\n }}\n {...props}\n />\n );\n};\n\nMessageSimple.displayName = 'MessageSimple{messageSimple{container}}';\n"]}
@@ -41,7 +41,11 @@ var FILE_PREVIEW_HEIGHT = 60;
41
41
  var styles = _reactNative.StyleSheet.create({
42
42
  dismiss: {
43
43
  borderRadius: 24,
44
- height: 24
44
+ height: 24,
45
+ position: 'absolute',
46
+ right: 14,
47
+ top: 4,
48
+ width: 24
45
49
  },
46
50
  fileContainer: {
47
51
  borderRadius: 12,
@@ -110,7 +114,8 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
110
114
  var renderItem = function renderItem(_ref) {
111
115
  var index = _ref.index,
112
116
  item = _ref.item;
113
- return _react["default"].createElement(_UploadProgressIndicator.UploadProgressIndicator, {
117
+ var indicatorType = item.state === _utils.FileState.UPLOADING ? _utils.ProgressIndicatorTypes.IN_PROGRESS : item.state === _utils.FileState.UPLOAD_FAILED ? _utils.ProgressIndicatorTypes.RETRY : undefined;
118
+ return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_UploadProgressIndicator.UploadProgressIndicator, {
114
119
  action: function action() {
115
120
  uploadFile({
116
121
  newFile: item
@@ -118,12 +123,12 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
118
123
  },
119
124
  active: item.state !== _utils.FileState.UPLOADED && item.state !== _utils.FileState.FINISHED,
120
125
  style: styles.overlay,
121
- type: item.state === _utils.FileState.UPLOADING ? _utils.ProgressIndicatorTypes.IN_PROGRESS : item.state === _utils.FileState.UPLOAD_FAILED ? _utils.ProgressIndicatorTypes.RETRY : undefined,
126
+ type: indicatorType,
122
127
  __self: _this,
123
128
  __source: {
124
129
  fileName: _jsxFileName,
125
- lineNumber: 116,
126
- columnNumber: 5
130
+ lineNumber: 130,
131
+ columnNumber: 9
127
132
  }
128
133
  }, _react["default"].createElement(_reactNative.View, {
129
134
  style: [styles.fileContainer, index === fileUploads.length - 1 ? {
@@ -135,32 +140,32 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
135
140
  __self: _this,
136
141
  __source: {
137
142
  fileName: _jsxFileName,
138
- lineNumber: 130,
139
- columnNumber: 7
143
+ lineNumber: 138,
144
+ columnNumber: 11
140
145
  }
141
146
  }, _react["default"].createElement(_reactNative.View, {
142
147
  style: [styles.fileContentContainer, fileContentContainer],
143
148
  __self: _this,
144
149
  __source: {
145
150
  fileName: _jsxFileName,
146
- lineNumber: 145,
147
- columnNumber: 9
151
+ lineNumber: 153,
152
+ columnNumber: 13
148
153
  }
149
154
  }, _react["default"].createElement(FileAttachmentIcon, {
150
155
  mimeType: item.file.type,
151
156
  __self: _this,
152
157
  __source: {
153
158
  fileName: _jsxFileName,
154
- lineNumber: 146,
155
- columnNumber: 11
159
+ lineNumber: 154,
160
+ columnNumber: 15
156
161
  }
157
162
  }), _react["default"].createElement(_reactNative.View, {
158
163
  style: [styles.fileTextContainer, fileTextContainer],
159
164
  __self: _this,
160
165
  __source: {
161
166
  fileName: _jsxFileName,
162
- lineNumber: 147,
163
- columnNumber: 11
167
+ lineNumber: 155,
168
+ columnNumber: 15
164
169
  }
165
170
  }, _react["default"].createElement(_reactNative.Text, {
166
171
  numberOfLines: 1,
@@ -171,8 +176,8 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
171
176
  __self: _this,
172
177
  __source: {
173
178
  fileName: _jsxFileName,
174
- lineNumber: 148,
175
- columnNumber: 13
179
+ lineNumber: 156,
180
+ columnNumber: 17
176
181
  }
177
182
  }, item.file.name || ''), _react["default"].createElement(_reactNative.Text, {
178
183
  style: [styles.fileSizeText, {
@@ -181,10 +186,10 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
181
186
  __self: _this,
182
187
  __source: {
183
188
  fileName: _jsxFileName,
184
- lineNumber: 166,
185
- columnNumber: 13
189
+ lineNumber: 174,
190
+ columnNumber: 17
186
191
  }
187
- }, (0, _FileAttachment.getFileSizeDisplayText)(item.file.size)))), _react["default"].createElement(_reactNative.TouchableOpacity, {
192
+ }, (0, _FileAttachment.getFileSizeDisplayText)(item.file.size)))))), _react["default"].createElement(_reactNative.TouchableOpacity, {
188
193
  onPress: function onPress() {
189
194
  removeFile(item.id);
190
195
  },
@@ -195,17 +200,17 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
195
200
  __self: _this,
196
201
  __source: {
197
202
  fileName: _jsxFileName,
198
- lineNumber: 171,
203
+ lineNumber: 181,
199
204
  columnNumber: 9
200
205
  }
201
206
  }, _react["default"].createElement(_Close.Close, {
202
207
  __self: _this,
203
208
  __source: {
204
209
  fileName: _jsxFileName,
205
- lineNumber: 178,
210
+ lineNumber: 188,
206
211
  columnNumber: 11
207
212
  }
208
- }))));
213
+ })));
209
214
  };
210
215
 
211
216
  var fileUploadsLength = fileUploads.length;
@@ -240,7 +245,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
240
245
  __self: _this,
241
246
  __source: {
242
247
  fileName: _jsxFileName,
243
- lineNumber: 193,
248
+ lineNumber: 203,
244
249
  columnNumber: 5
245
250
  }
246
251
  }) : null;
@@ -274,7 +279,7 @@ var FileUploadPreview = function FileUploadPreview(props) {
274
279
  __self: _this,
275
280
  __source: {
276
281
  fileName: _jsxFileName,
277
- lineNumber: 273,
282
+ lineNumber: 283,
278
283
  columnNumber: 5
279
284
  }
280
285
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["FileUploadPreview.tsx"],"names":["FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","dismiss","borderRadius","height","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","padding","fileContentContainer","filenameText","fontSize","fontWeight","paddingLeft","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","FileUploadPreviewWithContext","props","FileAttachmentIcon","fileUploads","removeFile","uploadFile","flatListRef","flatListWidth","setFlatListWidth","theme","colors","black","grey","grey_whisper","overlay_dark","messageInput","fileUploadPreview","renderItem","index","item","newFile","state","FileState","UPLOADED","FINISHED","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","UPLOAD_FAILED","RETRY","undefined","length","borderColor","width","file","type","color","name","size","id","backgroundColor","fileUploadsLength","current","setTimeout","scrollToEnd","_","offset","nativeEvent","layout","areEqual","prevProps","nextProps","prevFileUploads","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","displayName"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AAKA;;AAIA;;AACA;;AACA;;;;;;;;;AAaA,IAAMA,mBAAmB,GAAG,EAA5B;;AAEA,IAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,YAAY,EAAE,EADP;AAEPC,IAAAA,MAAM,EAAE;AAFD,GADsB;AAK/BC,EAAAA,aAAa,EAAE;AACbF,IAAAA,YAAY,EAAE,EADD;AAEbG,IAAAA,WAAW,EAAE,CAFA;AAGbC,IAAAA,aAAa,EAAE,KAHF;AAIbH,IAAAA,MAAM,EAAEN,mBAJK;AAKbU,IAAAA,cAAc,EAAE,eALH;AAMbC,IAAAA,YAAY,EAAE,CAND;AAObC,IAAAA,OAAO,EAAE;AAPI,GALgB;AAc/BC,EAAAA,oBAAoB,EAAE;AAAEJ,IAAAA,aAAa,EAAE;AAAjB,GAdS;AAe/BK,EAAAA,YAAY,EAAE;AACZC,IAAAA,QAAQ,EAAE,EADE;AAEZC,IAAAA,UAAU,EAAE,MAFA;AAGZC,IAAAA,WAAW,EAAE;AAHD,GAfiB;AAoB/BC,EAAAA,YAAY,EAAE;AACZH,IAAAA,QAAQ,EAAE,EADE;AAEZE,IAAAA,WAAW,EAAE;AAFD,GApBiB;AAwB/BE,EAAAA,iBAAiB,EAAE;AACjBb,IAAAA,MAAM,EAAE,MADS;AAEjBI,IAAAA,cAAc,EAAE;AAFC,GAxBY;AA4B/BU,EAAAA,QAAQ,EAAE;AAAET,IAAAA,YAAY,EAAE,EAAhB;AAAoBU,IAAAA,SAAS,EAAErB,mBAAmB,GAAG,GAAtB,GAA4B;AAA3D,GA5BqB;AA6B/BsB,EAAAA,OAAO,EAAE;AACPjB,IAAAA,YAAY,EAAE,EADP;AAEPkB,IAAAA,UAAU,EAAE,CAFL;AAGPC,IAAAA,WAAW,EAAE;AAHN;AA7BsB,CAAlB,CAAf;;AAkDA,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CASnCC,KATmC,EAUhC;AACH,MAAQC,kBAAR,GAAoED,KAApE,CAAQC,kBAAR;AAAA,MAA4BC,WAA5B,GAAoEF,KAApE,CAA4BE,WAA5B;AAAA,MAAyCC,UAAzC,GAAoEH,KAApE,CAAyCG,UAAzC;AAAA,MAAqDC,UAArD,GAAoEJ,KAApE,CAAqDI,UAArD;AAEA,MAAMC,WAAW,GAAG,mBAAoC,IAApC,CAApB;;AACA,kBAA0C,qBAAS,CAAT,CAA1C;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBC,gBAAtB;;AAEA,kBAeI,6BAfJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,KAFd,yBAEcA,KAFd;AAAA,MAEqBC,IAFrB,yBAEqBA,IAFrB;AAAA,MAE2BC,YAF3B,yBAE2BA,YAF3B;AAAA,MAEyCC,YAFzC,yBAEyCA,YAFzC;AAAA,8CAGIC,YAHJ,CAIMC,iBAJN;AAAA,MAKQrC,OALR,yBAKQA,OALR;AAAA,MAMQG,aANR,yBAMQA,aANR;AAAA,MAOQM,oBAPR,yBAOQA,oBAPR;AAAA,MAQQC,YARR,yBAQQA,YARR;AAAA,MASQI,YATR,yBASQA,YATR;AAAA,MAUQC,iBAVR,yBAUQA,iBAVR;AAAA,MAWQC,QAXR,yBAWQA,QAXR;;AAgBA,MAAMsB,UAAU,GAAG,SAAbA,UAAa;AAAA,QAAGC,KAAH,QAAGA,KAAH;AAAA,QAAUC,IAAV,QAAUA,IAAV;AAAA,WACjB,gCAAC,gDAAD;AACE,MAAA,MAAM,EAAE,kBAAM;AACZd,QAAAA,UAAU,CAAC;AAAEe,UAAAA,OAAO,EAAED;AAAX,SAAD,CAAV;AACD,OAHH;AAIE,MAAA,MAAM,EAAEA,IAAI,CAACE,KAAL,KAAeC,iBAAUC,QAAzB,IAAqCJ,IAAI,CAACE,KAAL,KAAeC,iBAAUE,QAJxE;AAKE,MAAA,KAAK,EAAEhD,MAAM,CAACqB,OALhB;AAME,MAAA,IAAI,EACFsB,IAAI,CAACE,KAAL,KAAeC,iBAAUG,SAAzB,GACIC,8BAAuBC,WAD3B,GAEIR,IAAI,CAACE,KAAL,KAAeC,iBAAUM,aAAzB,GACAF,8BAAuBG,KADvB,GAEAC,SAXR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAcE,gCAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLtD,MAAM,CAACM,aADF,EAELoC,KAAK,KAAKf,WAAW,CAAC4B,MAAZ,GAAqB,CAA/B,GACI;AACE7C,QAAAA,YAAY,EAAE;AADhB,OADJ,GAII,EANC,EAOL;AACE8C,QAAAA,WAAW,EAAEnB,YADf;AAEEoB,QAAAA,KAAK,EAAE1B,aAAa,GAAG;AAFzB,OAPK,EAWLzB,aAXK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAeE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAACN,MAAM,CAACY,oBAAR,EAA8BA,oBAA9B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,kBAAD;AAAoB,MAAA,QAAQ,EAAE+B,IAAI,CAACe,IAAL,CAAUC,IAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MADF,EAEE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAAC3D,MAAM,CAACkB,iBAAR,EAA2BA,iBAA3B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACE,gCAAC,iBAAD;AACE,MAAA,aAAa,EAAE,CADjB;AAEE,MAAA,KAAK,EAAE,CACLlB,MAAM,CAACa,YADF,EAEL;AACE+C,QAAAA,KAAK,EAAEzB,KADT;AAEEsB,QAAAA,KAAK,EACH1B,aAAa,GACb,EADA,GAEA,EAFA,GAGA,EAHA,GAIA;AAPJ,OAFK,EAWLlB,YAXK,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAgBG8B,IAAI,CAACe,IAAL,CAAUG,IAAV,IAAkB,EAhBrB,CADF,EAmBE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAAC7D,MAAM,CAACiB,YAAR,EAAsB;AAAE2C,QAAAA,KAAK,EAAExB;AAAT,OAAtB,EAAuCnB,YAAvC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACG,4CAAuB0B,IAAI,CAACe,IAAL,CAAUI,IAAjC,CADH,CAnBF,CAFF,CAfF,EAyCE,gCAAC,6BAAD;AACE,MAAA,OAAO,EAAE,mBAAM;AACblC,QAAAA,UAAU,CAACe,IAAI,CAACoB,EAAN,CAAV;AACD,OAHH;AAIE,MAAA,KAAK,EAAE,CAAC/D,MAAM,CAACG,OAAR,EAAiB;AAAE6D,QAAAA,eAAe,EAAE1B;AAAnB,OAAjB,EAAoDnC,OAApD,CAJT;AAKE,MAAA,MAAM,EAAC,4BALT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAOE,gCAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAPF,CAzCF,CAdF,CADiB;AAAA,GAAnB;;AAqEA,MAAM8D,iBAAiB,GAAGtC,WAAW,CAAC4B,MAAtC;AAEA,wBAAU,YAAM;AACd,QAAIU,iBAAiB,IAAInC,WAAW,CAACoC,OAArC,EAA8C;AAC5CC,MAAAA,UAAU,CAAC;AAAA;;AAAA,uCAAMrC,WAAW,CAACoC,OAAlB,qBAAM,qBAAqBE,WAArB,EAAN;AAAA,OAAD,EAA2C,CAA3C,CAAV;AACD;AACF,GAJD,EAIG,CAACH,iBAAD,CAJH;AAMA,SAAOA,iBAAiB,GACtB,gCAAC,qBAAD;AACE,IAAA,IAAI,EAAEtC,WADR;AAEE,IAAA,aAAa,EAAE,uBAAC0C,CAAD,EAAI3B,KAAJ;AAAA,aAAe;AAC5BA,QAAAA,KAAK,EAALA,KAD4B;AAE5Ba,QAAAA,MAAM,EAAExD,mBAAmB,GAAG,CAFF;AAG5BuE,QAAAA,MAAM,EAAE,CAACvE,mBAAmB,GAAG,CAAvB,IAA4B2C;AAHR,OAAf;AAAA,KAFjB;AAOE,IAAA,YAAY,EAAE,sBAACC,IAAD;AAAA,aAAUA,IAAI,CAACoB,EAAf;AAAA,KAPhB;AAQE,IAAA,QAAQ,EAAE,yBAIJ;AAAA,UAFQN,KAER,SAHJc,WAGI,CAFFC,MAEE,CAFQf,KAER;AACJzB,MAAAA,gBAAgB,CAACyB,KAAD,CAAhB;AACD,KAdH;AAeE,IAAA,GAAG,EAAE3B,WAfP;AAgBE,IAAA,UAAU,EAAEW,UAhBd;AAiBE,IAAA,KAAK,EAAE,CAACzC,MAAM,CAACmB,QAAR,EAAkBA,QAAlB,CAjBT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADsB,GAoBpB,IApBJ;AAqBD,CAlID;;AAoIA,IAAMsD,QAAQ,GAAG,SAAXA,QAAW,CASfC,SATe,EAUfC,SAVe,EAWZ;AACH,MAAqBC,eAArB,GAAyCF,SAAzC,CAAQ/C,WAAR;AACA,MAAqBkD,eAArB,GAAyCF,SAAzC,CAAQhD,WAAR;AAEA,SACEiD,eAAe,CAACrB,MAAhB,KAA2BsB,eAAe,CAACtB,MAA3C,IACAqB,eAAe,CAACE,KAAhB,CACE,UAACC,cAAD,EAAiBrC,KAAjB;AAAA,WAA2BqC,cAAc,CAAClC,KAAf,KAAyBgC,eAAe,CAACnC,KAAD,CAAf,CAAuBG,KAA3E;AAAA,GADF,CAFF;AAMD,CArBD;;AAuBA,IAAMmC,yBAAyB,GAAGC,kBAAMC,IAAN,CAChC1D,4BADgC,EAEhCiD,QAFgC,CAAlC;;AAmBO,IAAMU,iBAAiB,GAAG,SAApBA,iBAAoB,CAS/B1D,KAT+B,EAU5B;AACH,8BACE,kDADF;AAAA,MAAQE,WAAR,yBAAQA,WAAR;AAAA,MAAqBC,UAArB,yBAAqBA,UAArB;AAAA,MAAiCC,UAAjC,yBAAiCA,UAAjC;;AAEA,4BAA+B,0CAA/B;AAAA,MAAQH,kBAAR,uBAAQA,kBAAR;;AAEA,SACE,gCAAC,yBAAD;AACQA,IAAAA,kBAAkB,EAAlBA,kBADR;AAC4BC,IAAAA,WAAW,EAAXA,WAD5B;AACyCC,IAAAA,UAAU,EAAVA,UADzC;AACqDC,IAAAA,UAAU,EAAVA;AADrD,KAEMJ,KAFN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAMD,CArBM;;;AAuBP0D,iBAAiB,CAACC,WAAlB,GAAgC,oDAAhC","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Close } from '../../icons/Close';\nimport { FileState, ProgressIndicatorTypes } 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 FILE_PREVIEW_HEIGHT = 60;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n padding: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingLeft: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingLeft: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n});\n\ntype FileUploadPreviewPropsWithContext<\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<\n MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'fileUploads' | 'removeFile' | 'uploadFile'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'FileAttachmentIcon'>;\n\nconst FileUploadPreviewWithContext = <\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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { FileAttachmentIcon, fileUploads, removeFile, uploadFile } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n const {\n theme: {\n colors: { black, grey, grey_whisper, overlay_dark },\n messageInput: {\n fileUploadPreview: {\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileSizeText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => (\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n active={item.state !== FileState.UPLOADED && item.state !== FileState.FINISHED}\n style={styles.overlay}\n type={\n item.state === FileState.UPLOADING\n ? ProgressIndicatorTypes.IN_PROGRESS\n : item.state === FileState.UPLOAD_FAILED\n ? ProgressIndicatorTypes.RETRY\n : undefined\n }\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <FileAttachmentIcon mimeType={item.file.type} />\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n filenameText,\n ]}\n >\n {item.file.name || ''}\n </Text>\n <Text style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {getFileSizeDisplayText(item.file.size)}\n </Text>\n </View>\n </View>\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: overlay_dark }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close />\n </TouchableOpacity>\n </View>\n </UploadProgressIndicator>\n );\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => item.id}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) => prevFileUpload.state === nextFileUploads[index].state,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\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<FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\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: FileUploadPreviewProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads, removeFile, uploadFile } =\n useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { FileAttachmentIcon } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedFileUploadPreview\n {...{ FileAttachmentIcon, fileUploads, removeFile, uploadFile }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"]}
1
+ {"version":3,"sources":["FileUploadPreview.tsx"],"names":["FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","padding","fileContentContainer","filenameText","fontSize","fontWeight","paddingLeft","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","FileUploadPreviewWithContext","props","FileAttachmentIcon","fileUploads","removeFile","uploadFile","flatListRef","flatListWidth","setFlatListWidth","theme","colors","black","grey","grey_whisper","overlay_dark","messageInput","fileUploadPreview","renderItem","index","item","indicatorType","state","FileState","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","UPLOAD_FAILED","RETRY","undefined","newFile","UPLOADED","FINISHED","length","borderColor","file","type","color","name","size","id","backgroundColor","fileUploadsLength","current","setTimeout","scrollToEnd","_","offset","nativeEvent","layout","areEqual","prevProps","nextProps","prevFileUploads","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Close } from '../../icons/Close';\nimport { FileState, ProgressIndicatorTypes } 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 FILE_PREVIEW_HEIGHT = 60;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 14,\n top: 4,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n padding: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingLeft: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingLeft: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n});\n\ntype FileUploadPreviewPropsWithContext<\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<\n MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'fileUploads' | 'removeFile' | 'uploadFile'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'FileAttachmentIcon'>;\n\nconst FileUploadPreviewWithContext = <\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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { FileAttachmentIcon, fileUploads, removeFile, uploadFile } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n const {\n theme: {\n colors: { black, grey, grey_whisper, overlay_dark },\n messageInput: {\n fileUploadPreview: {\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileSizeText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType =\n item.state === FileState.UPLOADING\n ? ProgressIndicatorTypes.IN_PROGRESS\n : item.state === FileState.UPLOAD_FAILED\n ? ProgressIndicatorTypes.RETRY\n : undefined;\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n active={item.state !== FileState.UPLOADED && item.state !== FileState.FINISHED}\n style={styles.overlay}\n type={indicatorType}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <FileAttachmentIcon mimeType={item.file.type} />\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n filenameText,\n ]}\n >\n {item.file.name || ''}\n </Text>\n <Text style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {getFileSizeDisplayText(item.file.size)}\n </Text>\n </View>\n </View>\n </View>\n </UploadProgressIndicator>\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: overlay_dark }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close />\n </TouchableOpacity>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => item.id}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) => prevFileUpload.state === nextFileUploads[index].state,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\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<FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\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: FileUploadPreviewProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads, removeFile, uploadFile } =\n useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { FileAttachmentIcon } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedFileUploadPreview\n {...{ FileAttachmentIcon, fileUploads, removeFile, uploadFile }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"]}