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.
- package/lib/commonjs/components/Attachment/Gallery.js +21 -9
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +52 -30
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +4 -0
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +4 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +9 -6
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +28 -23
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +40 -31
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +1 -5
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +21 -9
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +52 -30
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +4 -0
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +4 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +9 -6
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +28 -23
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +40 -31
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js +1 -5
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts +3 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +4 -2
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +3 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -1
- package/package.json +1 -1
- package/src/components/Attachment/Gallery.tsx +20 -5
- package/src/components/Channel/Channel.tsx +124 -67
- package/src/components/Channel/hooks/useCreateChannelContext.ts +4 -0
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +4 -0
- package/src/components/Message/MessageSimple/MessageSimple.tsx +9 -3
- package/src/components/MessageInput/FileUploadPreview.tsx +68 -58
- package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +778 -730
- package/src/components/MessageList/MessageList.tsx +52 -27
- package/src/components/MessageList/hooks/useMessageList.ts +1 -1
- package/src/components/MessageList/utils/getGroupStyles.ts +3 -8
- package/src/contexts/channelContext/ChannelContext.tsx +2 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +2 -0
- package/src/version.json +1 -1
- package/lib/commonjs/components/Channel/utils/debounce.js +0 -20
- package/lib/commonjs/components/Channel/utils/debounce.js.map +0 -1
- package/lib/commonjs/components/Channel/utils/throttle.js +0 -20
- package/lib/commonjs/components/Channel/utils/throttle.js.map +0 -1
- package/lib/module/components/Channel/utils/debounce.js +0 -20
- package/lib/module/components/Channel/utils/debounce.js.map +0 -1
- package/lib/module/components/Channel/utils/throttle.js +0 -20
- package/lib/module/components/Channel/utils/throttle.js.map +0 -1
- package/lib/typescript/components/Channel/utils/debounce.d.ts +0 -2
- package/lib/typescript/components/Channel/utils/throttle.d.ts +0 -2
- package/src/components/Channel/utils/debounce.ts +0 -12
- 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":";;;;;AAAA;;AAcO,IAAMA,uBAAuB,GAAG,SAA1BA,uBAA0B,
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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:
|
|
126
|
+
type: indicatorType,
|
|
122
127
|
__self: _this,
|
|
123
128
|
__source: {
|
|
124
129
|
fileName: _jsxFileName,
|
|
125
|
-
lineNumber:
|
|
126
|
-
columnNumber:
|
|
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:
|
|
139
|
-
columnNumber:
|
|
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:
|
|
147
|
-
columnNumber:
|
|
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:
|
|
155
|
-
columnNumber:
|
|
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:
|
|
163
|
-
columnNumber:
|
|
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:
|
|
175
|
-
columnNumber:
|
|
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:
|
|
185
|
-
columnNumber:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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":"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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 },\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"]}
|