stream-chat-react-native-core 5.24.0-beta.5 → 5.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +22 -14
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/Card.js +11 -4
  4. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/Gallery.js +24 -16
  6. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  7. package/lib/commonjs/components/Message/Message.js +14 -7
  8. package/lib/commonjs/components/Message/Message.js.map +1 -1
  9. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +22 -16
  10. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  11. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +14 -8
  12. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  13. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +10 -4
  14. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  15. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +6 -1
  16. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  17. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +9 -3
  18. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  19. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  20. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  21. package/lib/commonjs/i18n/en.json +1 -1
  22. package/lib/commonjs/i18n/fr.json +54 -54
  23. package/lib/commonjs/i18n/hi.json +54 -54
  24. package/lib/commonjs/i18n/it.json +54 -54
  25. package/lib/commonjs/i18n/nl.json +54 -54
  26. package/lib/commonjs/i18n/ru.json +54 -54
  27. package/lib/commonjs/i18n/tr.json +54 -54
  28. package/lib/commonjs/version.json +1 -1
  29. package/lib/module/components/Attachment/Attachment.js +22 -14
  30. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  31. package/lib/module/components/Attachment/Card.js +11 -4
  32. package/lib/module/components/Attachment/Card.js.map +1 -1
  33. package/lib/module/components/Attachment/Gallery.js +24 -16
  34. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  35. package/lib/module/components/Message/Message.js +14 -7
  36. package/lib/module/components/Message/Message.js.map +1 -1
  37. package/lib/module/components/Message/MessageSimple/MessageContent.js +22 -16
  38. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  39. package/lib/module/components/Message/MessageSimple/MessageSimple.js +14 -8
  40. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  41. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +10 -4
  42. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  43. package/lib/module/components/Message/hooks/useCreateMessageContext.js +6 -1
  44. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  45. package/lib/module/components/MessageOverlay/MessageOverlay.js +9 -3
  46. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  47. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  48. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  49. package/lib/module/i18n/en.json +1 -1
  50. package/lib/module/i18n/fr.json +54 -54
  51. package/lib/module/i18n/hi.json +54 -54
  52. package/lib/module/i18n/it.json +54 -54
  53. package/lib/module/i18n/nl.json +54 -54
  54. package/lib/module/i18n/ru.json +54 -54
  55. package/lib/module/i18n/tr.json +54 -54
  56. package/lib/module/version.json +1 -1
  57. package/lib/typescript/components/Attachment/Attachment.d.ts +2 -2
  58. package/lib/typescript/components/Attachment/Card.d.ts +2 -2
  59. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  60. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
  61. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
  62. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -1
  63. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  64. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +8 -2
  65. package/lib/typescript/i18n/en.json +1 -1
  66. package/lib/typescript/i18n/fr.json +54 -54
  67. package/lib/typescript/i18n/hi.json +54 -54
  68. package/lib/typescript/i18n/it.json +54 -54
  69. package/lib/typescript/i18n/nl.json +54 -54
  70. package/lib/typescript/i18n/ru.json +54 -54
  71. package/lib/typescript/i18n/tr.json +54 -54
  72. package/package.json +1 -1
  73. package/src/components/Attachment/Attachment.tsx +16 -2
  74. package/src/components/Attachment/Card.tsx +22 -4
  75. package/src/components/Attachment/Gallery.tsx +11 -0
  76. package/src/components/Message/Message.tsx +9 -0
  77. package/src/components/Message/MessageSimple/MessageContent.tsx +9 -0
  78. package/src/components/Message/MessageSimple/MessageSimple.tsx +9 -0
  79. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +12 -2
  80. package/src/components/Message/hooks/useCreateMessageContext.ts +4 -0
  81. package/src/components/MessageOverlay/MessageOverlay.tsx +8 -0
  82. package/src/contexts/messageContext/MessageContext.tsx +7 -1
  83. package/src/i18n/en.json +1 -1
  84. package/src/i18n/fr.json +54 -54
  85. package/src/i18n/hi.json +54 -54
  86. package/src/i18n/it.json +54 -54
  87. package/src/i18n/nl.json +54 -54
  88. package/src/i18n/ru.json +54 -54
  89. package/src/i18n/tr.json +54 -54
  90. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCreateMessageContext","_useMessageActionHandlers","_useMessageActions2","_messageActions","_ChannelContext","_ChatContext","_KeyboardContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_OwnCapabilitiesContext","_ThemeContext","_ThreadContext","_TranslationContext","_native","_utils","_useMessageList","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageWithContext","props","_message$user","_useState","useState","_useState2","_slicedToArray2","isBounceDialogOpen","setIsBounceDialogOpen","isMessageTypeDeleted","message","type","sendReaction","channel","deleteMessageFromContext","deleteMessage","disabled","dismissKeyboard","dismissKeyboardOnMessageTouch","_props$enableLongPres","enableLongPress","enforceUniqueReaction","_props$forceAlignMess","forceAlignMessages","goToMessage","_props$groupStyles","groupStyles","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","chatContext","lastReceivedId","members","_props$messageActions","messageActions","messageActionsProp","defaultMessageActions","messageContentOrderProp","messageContentOrder","messagesContext","MessageBounce","MessageSimple","onLongPressProp","onLongPress","onLongPressMessageProp","onLongPressMessage","onPressProp","onPress","onPressMessageProp","onPressMessage","onPressInProp","onPressIn","onPressInMessageProp","onPressInMessage","onThreadSelect","openThread","OverlayReactionList","preventPress","removeMessage","deleteReaction","retrySendMessage","selectReaction","setData","setEditingState","setOverlay","setQuotedMessageState","showAvatar","showMessageStatus","showUnreadUnderlay","style","supportedReactions","t","isTargetedMessage","_props$threadList","threadList","updateMessage","client","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","bg_gradient_start","targetedMessageBackground","_useTheme$theme$messa","messageSimple","targetedMessageContainer","targetedMessageUnderlay","actionsEnabled","status","MessageStatusTypes","RECEIVED","isMyMessage","userID","user","id","handleAction","_ref","_asyncToGenerator2","_regenerator","mark","_callee","name","value","data","wrap","_callee$","_context","prev","next","sendAction","_defineProperty2","sent","parent_id","stop","_x","_x2","apply","arguments","onPressQuotedMessage","quotedMessage","errorOrFailed","FAILED","error","length","undefined","Keyboard","dismiss","quoted_message","isBlockedMessage","isBouncedMessage","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextShowUnreadUnderlay","nextT","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { GestureResponderEvent, Keyboard, StyleProp, View, ViewStyle } from 'react-native';\n\nimport type { Attachment, UserResponse } from 'stream-chat';\n\nimport { useCreateMessageContext } from './hooks/useCreateMessageContext';\nimport { useMessageActionHandlers } from './hooks/useMessageActionHandlers';\nimport { useMessageActions } from './hooks/useMessageActions';\nimport { messageActions as defaultMessageActions } from './utils/messageActions';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n KeyboardContextValue,\n useKeyboardContext,\n} from '../../contexts/keyboardContext/KeyboardContext';\nimport {\n MessageContextValue,\n MessageProvider,\n Reactions,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport { isVideoPackageAvailable, triggerHaptic } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport {\n hasOnlyEmojis,\n isBlockedMessage,\n isBouncedMessage,\n MessageStatusTypes,\n} from '../../utils/utils';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n} from '../MessageList/hooks/useMessageList';\nimport type { MessageActionListItemProps } from '../MessageOverlay/MessageActionListItem';\n\nexport type TouchableEmitter =\n | 'fileAttachment'\n | 'gallery'\n | 'giphy'\n | 'message'\n | 'messageContent'\n | 'messageReplies'\n | 'reactionList';\n\nexport type TextMentionTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'textMention';\n additionalInfo?: { user?: UserResponse<StreamChatGenerics> };\n};\n\nexport type UrlTouchableHandlerPayload = {\n emitter: 'textLink' | 'card';\n additionalInfo?: { url?: string };\n};\n\nexport type FileAttachmentTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'fileAttachment';\n additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };\n};\n\nexport type TouchableHandlerPayload = {\n defaultHandler?: () => void;\n event?: GestureResponderEvent;\n} & (\n | {\n emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;\n }\n | TextMentionTouchableHandlerPayload\n | UrlTouchableHandlerPayload\n | FileAttachmentTouchableHandlerPayload\n);\n\nexport type MessageTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = TouchableHandlerPayload & {\n actionHandlers?: MessageActionHandlers;\n additionalInfo?: Record<string, unknown>;\n message?: MessageType<StreamChatGenerics>;\n};\n\nexport type MessageActionHandlers = {\n deleteMessage: () => Promise<void>;\n editMessage: () => void;\n pinMessage: () => Promise<void>;\n quotedReply: () => void;\n resendMessage: () => Promise<void>;\n showMessageOverlay: () => void;\n toggleBanUser: () => Promise<void>;\n toggleMuteUser: () => Promise<void>;\n toggleReaction: (reactionType: string) => Promise<void>;\n};\n\nexport type MessagePropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n ChannelContextValue<StreamChatGenerics>,\n 'channel' | 'disabled' | 'enforceUniqueReaction' | 'members'\n> &\n Pick<KeyboardContextValue, 'dismissKeyboard'> &\n Partial<Omit<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'sendReaction'\n | 'deleteMessage'\n | 'dismissKeyboardOnMessageTouch'\n | 'forceAlignMessages'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleQuotedReply'\n | 'handleReaction'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'isAttachmentEqual'\n | 'messageActions'\n | 'messageContentOrder'\n | 'MessageBounce'\n | 'MessageSimple'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'removeMessage'\n | 'deleteReaction'\n | 'retrySendMessage'\n | 'selectReaction'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'supportedReactions'\n | 'updateMessage'\n > &\n Pick<MessageOverlayContextValue<StreamChatGenerics>, 'setData'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<TranslationContextValue, 't'> & {\n chatContext: ChatContextValue<StreamChatGenerics>;\n messagesContext: MessagesContextValue<StreamChatGenerics>;\n /**\n * Whether or not users are able to long press messages.\n */\n enableLongPress?: boolean;\n goToMessage?: (messageId: string) => void;\n isTargetedMessage?: boolean;\n /**\n * Array of allowed actions or null on message, this can also be a function returning the array.\n * If all the actions need to be disabled an empty array should be provided as value of prop\n */\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n **/\n onLongPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n * */\n onPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n onPressIn?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n showUnreadUnderlay?: boolean;\n style?: StyleProp<ViewStyle>;\n };\n\n/**\n * Since this component doesn't consume `messages` from `MessagesContext`,\n * we memoized and broke it up to prevent new messages from re-rendering\n * each individual Message component.\n */\nconst MessageWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);\n const isMessageTypeDeleted = props.message.type === 'deleted';\n\n const {\n sendReaction,\n channel,\n deleteMessage: deleteMessageFromContext,\n disabled,\n dismissKeyboard,\n dismissKeyboardOnMessageTouch,\n enableLongPress = true,\n enforceUniqueReaction,\n forceAlignMessages = false,\n goToMessage,\n groupStyles = ['bottom'],\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n chatContext,\n lastReceivedId,\n members,\n message,\n messageActions: messageActionsProp = defaultMessageActions,\n messageContentOrder: messageContentOrderProp,\n messagesContext,\n MessageBounce,\n MessageSimple,\n onLongPress: onLongPressProp,\n onLongPressMessage: onLongPressMessageProp,\n onPress: onPressProp,\n onPressMessage: onPressMessageProp,\n onPressIn: onPressInProp,\n onPressInMessage: onPressInMessageProp,\n onThreadSelect,\n openThread,\n OverlayReactionList,\n preventPress,\n removeMessage,\n deleteReaction,\n retrySendMessage,\n selectReaction,\n setData,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n showAvatar,\n showMessageStatus,\n showUnreadUnderlay,\n style,\n supportedReactions,\n t,\n isTargetedMessage,\n threadList = false,\n updateMessage,\n } = props;\n const { client } = chatContext;\n const {\n theme: {\n colors: { bg_gradient_start, targetedMessageBackground },\n messageSimple: { targetedMessageContainer, targetedMessageUnderlay },\n },\n } = useTheme();\n\n const actionsEnabled =\n message.type === 'regular' && message.status === MessageStatusTypes.RECEIVED;\n\n const isMyMessage = client && message && client.userID === message.user?.id;\n\n const handleAction = async (name: string, value: string) => {\n if (message.id) {\n const data = await channel?.sendAction(message.id, { [name]: value });\n if (data?.message) {\n updateMessage(data.message);\n } else {\n removeMessage({\n id: message.id,\n parent_id: message.parent_id,\n });\n }\n }\n };\n\n const onPressQuotedMessage = (quotedMessage: MessageType<StreamChatGenerics>) => {\n if (!goToMessage) return;\n\n goToMessage(quotedMessage.id);\n };\n\n const errorOrFailed = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onPress = (error = errorOrFailed) => {\n if (dismissKeyboardOnMessageTouch) {\n Keyboard.dismiss();\n }\n const quotedMessage = message.quoted_message as MessageType<StreamChatGenerics>;\n if (error) {\n /**\n * If its a Blocked message, we don't do anything as per specs.\n */\n if (isBlockedMessage(message)) {\n return;\n }\n /**\n * If its a Bounced message, we open the message bounced options modal.\n */\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n showMessageOverlay(false, true);\n } else if (quotedMessage) {\n onPressQuotedMessage(quotedMessage);\n }\n };\n\n const alignment =\n forceAlignMessages && (forceAlignMessages === 'left' || forceAlignMessages === 'right')\n ? forceAlignMessages\n : isMyMessage\n ? 'right'\n : 'left';\n\n /**\n * attachments contain files/images or other attachments\n *\n * if a URL attachment is present with a file/image then we\n * show just the text and markdown should make the link\n * clickable\n */\n const attachments =\n !isMessageTypeDeleted && Array.isArray(message.attachments)\n ? message.attachments.reduce(\n (acc, cur) => {\n if (cur.type === 'file') {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'video' && !cur.og_scrape_url && isVideoPackageAvailable()) {\n acc.videos.push({\n image_url: cur.asset_url,\n thumb_url: cur.thumb_url,\n type: 'video',\n });\n acc.other = [];\n } else if (cur.type === 'video' && !cur.og_scrape_url) {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'audio') {\n acc.files.push(cur);\n } else if (cur.type === 'image' && !cur.title_link && !cur.og_scrape_url) {\n /**\n * this next if is not combined with the above one for cases where we have\n * an image with no url links at all falling back to being an attachment\n */\n if (cur.image_url || cur.thumb_url) {\n acc.images.push(cur);\n acc.other = []; // remove other attachments if an image exists\n }\n // only add other attachments if there are no files/images\n } else if (!acc.files.length && !acc.images.length && !acc.videos.length) {\n acc.other.push(cur);\n }\n\n return acc;\n },\n {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n },\n )\n : {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n };\n /**\n * Check if any actions to prevent long press\n */\n const hasAttachmentActions =\n !isMessageTypeDeleted &&\n Array.isArray(message.attachments) &&\n message.attachments.some((attachment) => attachment.actions && attachment.actions.length);\n\n const messageContentOrder = messageContentOrderProp.filter((content) => {\n if (content === 'quoted_reply') {\n return !!message.quoted_message;\n }\n\n switch (content) {\n case 'attachments':\n return !!attachments.other.length;\n case 'files':\n return !!attachments.files.length;\n case 'gallery':\n return !!attachments.images.length || !!attachments.videos.length;\n case 'text':\n default:\n return !!message.text;\n }\n });\n\n const emojiOnlyText = useMemo(() => {\n if (!message.text) return false;\n return hasOnlyEmojis(message.text);\n }, [message.text]);\n\n const onlyEmojis =\n !attachments.files.length &&\n !attachments.images.length &&\n !attachments.other.length &&\n emojiOnlyText;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const hasReactions =\n !isMessageTypeDeleted && !!message.latest_reactions && message.latest_reactions.length > 0;\n\n const clientId = client.userID;\n\n const reactions = hasReactions\n ? supportedReactions.reduce((acc, cur) => {\n const reactionType = cur.type;\n const reactionsOfReactionType = message.latest_reactions?.filter(\n (reaction) => reaction.type === reactionType,\n );\n\n if (reactionsOfReactionType?.length) {\n const hasOwnReaction = reactionsOfReactionType.some(\n (reaction) => reaction.user_id === clientId,\n );\n acc.push({ own: hasOwnReaction, type: reactionType });\n }\n\n return acc;\n }, [] as Reactions)\n : [];\n\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n message,\n retrySendMessage,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n });\n\n const {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n } = useMessageActions({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n removeMessage,\n retrySendMessage,\n selectReaction,\n sendReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n updateMessage,\n });\n\n const { userLanguage } = useTranslationContext();\n\n const showMessageOverlay = async (messageReactions = false, error = errorOrFailed) => {\n await dismissKeyboard();\n\n const isThreadMessage = threadList || !!message.parent_id;\n\n const dismissOverlay = () => setOverlay('none');\n\n const messageActions =\n typeof messageActionsProp !== 'function'\n ? messageActionsProp\n : messageActionsProp({\n blockUser,\n copyMessage,\n deleteMessage,\n dismissOverlay,\n editMessage,\n error,\n flagMessage,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n muteUser,\n ownCapabilities,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n });\n\n setData({\n alignment,\n chatContext,\n clientId: client.userID,\n files: attachments.files,\n groupStyles,\n handleReaction: ownCapabilities.sendReaction ? handleReaction : undefined,\n images: attachments.images,\n message,\n messageActions: messageActions?.filter(Boolean) as MessageActionListItemProps[] | undefined,\n messageContext: { ...messageContext, disabled: true, preventPress: true },\n messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,\n messagesContext: { ...messagesContext, messageContentOrder },\n onlyEmojis,\n otherAttachments: attachments.other,\n OverlayReactionList,\n ownCapabilities,\n supportedReactions,\n threadList,\n userLanguage,\n videos: attachments.videos,\n });\n\n setOverlay('message');\n };\n\n const actionHandlers: MessageActionHandlers = {\n deleteMessage: handleDeleteMessage,\n editMessage: handleEditMessage,\n pinMessage: handleTogglePinMessage,\n quotedReply: handleQuotedReplyMessage,\n resendMessage: handleResendMessage,\n showMessageOverlay,\n toggleBanUser: handleToggleBanUser,\n toggleMuteUser: handleToggleMuteUser,\n toggleReaction: handleToggleReaction,\n };\n\n const onLongPressMessage =\n disabled || hasAttachmentActions || isBlockedMessage(message)\n ? () => null\n : onLongPressMessageProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressMessageProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n message,\n })\n : onLongPressProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n })\n : enableLongPress\n ? () => {\n // If a message is bounced, on long press the message bounce options modal should open.\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n {isBounceDialogOpen && <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />}\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\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 const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCreateMessageContext","_useMessageActionHandlers","_useMessageActions2","_messageActions","_ChannelContext","_ChatContext","_KeyboardContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_OwnCapabilitiesContext","_ThemeContext","_ThreadContext","_TranslationContext","_native","_utils","_useMessageList","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageWithContext","props","_message$user","_useState","useState","_useState2","_slicedToArray2","isBounceDialogOpen","setIsBounceDialogOpen","isMessageTypeDeleted","message","type","sendReaction","channel","deleteMessageFromContext","deleteMessage","disabled","dismissKeyboard","dismissKeyboardOnMessageTouch","_props$enableLongPres","enableLongPress","enforceUniqueReaction","_props$forceAlignMess","forceAlignMessages","goToMessage","_props$groupStyles","groupStyles","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","chatContext","lastReceivedId","members","_props$messageActions","messageActions","messageActionsProp","defaultMessageActions","messageContentOrderProp","messageContentOrder","messagesContext","MessageBounce","MessageSimple","onLongPressProp","onLongPress","onLongPressMessageProp","onLongPressMessage","onPressProp","onPress","onPressMessageProp","onPressMessage","onPressInProp","onPressIn","onPressInMessageProp","onPressInMessage","onThreadSelect","openThread","OverlayReactionList","preventPress","removeMessage","deleteReaction","retrySendMessage","selectReaction","setData","setEditingState","setOverlay","setQuotedMessageState","showAvatar","showMessageStatus","showUnreadUnderlay","style","supportedReactions","t","isTargetedMessage","_props$threadList","threadList","updateMessage","client","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","bg_gradient_start","targetedMessageBackground","_useTheme$theme$messa","messageSimple","targetedMessageContainer","targetedMessageUnderlay","actionsEnabled","status","MessageStatusTypes","RECEIVED","isMyMessage","userID","user","id","handleAction","_ref","_asyncToGenerator2","_regenerator","mark","_callee","name","value","data","wrap","_callee$","_context","prev","next","sendAction","_defineProperty2","sent","parent_id","stop","_x","_x2","apply","arguments","onPressQuotedMessage","quotedMessage","errorOrFailed","FAILED","error","length","undefined","Keyboard","dismiss","quoted_message","isBlockedMessage","isBouncedMessage","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","myMessageTheme","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevMessagesContext","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextMessagesContext","nextShowUnreadUnderlay","nextT","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","prevMyMessageTheme","JSON","stringify","nextMyMessageTheme","messageThemeEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { GestureResponderEvent, Keyboard, StyleProp, View, ViewStyle } from 'react-native';\n\nimport type { Attachment, UserResponse } from 'stream-chat';\n\nimport { useCreateMessageContext } from './hooks/useCreateMessageContext';\nimport { useMessageActionHandlers } from './hooks/useMessageActionHandlers';\nimport { useMessageActions } from './hooks/useMessageActions';\nimport { messageActions as defaultMessageActions } from './utils/messageActions';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n KeyboardContextValue,\n useKeyboardContext,\n} from '../../contexts/keyboardContext/KeyboardContext';\nimport {\n MessageContextValue,\n MessageProvider,\n Reactions,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport { isVideoPackageAvailable, triggerHaptic } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport {\n hasOnlyEmojis,\n isBlockedMessage,\n isBouncedMessage,\n MessageStatusTypes,\n} from '../../utils/utils';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n} from '../MessageList/hooks/useMessageList';\nimport type { MessageActionListItemProps } from '../MessageOverlay/MessageActionListItem';\n\nexport type TouchableEmitter =\n | 'fileAttachment'\n | 'gallery'\n | 'giphy'\n | 'message'\n | 'messageContent'\n | 'messageReplies'\n | 'reactionList';\n\nexport type TextMentionTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'textMention';\n additionalInfo?: { user?: UserResponse<StreamChatGenerics> };\n};\n\nexport type UrlTouchableHandlerPayload = {\n emitter: 'textLink' | 'card';\n additionalInfo?: { url?: string };\n};\n\nexport type FileAttachmentTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'fileAttachment';\n additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };\n};\n\nexport type TouchableHandlerPayload = {\n defaultHandler?: () => void;\n event?: GestureResponderEvent;\n} & (\n | {\n emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;\n }\n | TextMentionTouchableHandlerPayload\n | UrlTouchableHandlerPayload\n | FileAttachmentTouchableHandlerPayload\n);\n\nexport type MessageTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = TouchableHandlerPayload & {\n actionHandlers?: MessageActionHandlers;\n additionalInfo?: Record<string, unknown>;\n message?: MessageType<StreamChatGenerics>;\n};\n\nexport type MessageActionHandlers = {\n deleteMessage: () => Promise<void>;\n editMessage: () => void;\n pinMessage: () => Promise<void>;\n quotedReply: () => void;\n resendMessage: () => Promise<void>;\n showMessageOverlay: () => void;\n toggleBanUser: () => Promise<void>;\n toggleMuteUser: () => Promise<void>;\n toggleReaction: (reactionType: string) => Promise<void>;\n};\n\nexport type MessagePropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n ChannelContextValue<StreamChatGenerics>,\n 'channel' | 'disabled' | 'enforceUniqueReaction' | 'members'\n> &\n Pick<KeyboardContextValue, 'dismissKeyboard'> &\n Partial<Omit<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'sendReaction'\n | 'deleteMessage'\n | 'dismissKeyboardOnMessageTouch'\n | 'forceAlignMessages'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleQuotedReply'\n | 'handleReaction'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'isAttachmentEqual'\n | 'messageActions'\n | 'messageContentOrder'\n | 'MessageBounce'\n | 'MessageSimple'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'removeMessage'\n | 'deleteReaction'\n | 'retrySendMessage'\n | 'selectReaction'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'supportedReactions'\n | 'updateMessage'\n > &\n Pick<MessageOverlayContextValue<StreamChatGenerics>, 'setData'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<TranslationContextValue, 't'> & {\n chatContext: ChatContextValue<StreamChatGenerics>;\n messagesContext: MessagesContextValue<StreamChatGenerics>;\n /**\n * Whether or not users are able to long press messages.\n */\n enableLongPress?: boolean;\n goToMessage?: (messageId: string) => void;\n isTargetedMessage?: boolean;\n /**\n * Array of allowed actions or null on message, this can also be a function returning the array.\n * If all the actions need to be disabled an empty array should be provided as value of prop\n */\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n **/\n onLongPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n * */\n onPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n onPressIn?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n showUnreadUnderlay?: boolean;\n style?: StyleProp<ViewStyle>;\n };\n\n/**\n * Since this component doesn't consume `messages` from `MessagesContext`,\n * we memoized and broke it up to prevent new messages from re-rendering\n * each individual Message component.\n */\nconst MessageWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);\n const isMessageTypeDeleted = props.message.type === 'deleted';\n\n const {\n sendReaction,\n channel,\n deleteMessage: deleteMessageFromContext,\n disabled,\n dismissKeyboard,\n dismissKeyboardOnMessageTouch,\n enableLongPress = true,\n enforceUniqueReaction,\n forceAlignMessages = false,\n goToMessage,\n groupStyles = ['bottom'],\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n chatContext,\n lastReceivedId,\n members,\n message,\n messageActions: messageActionsProp = defaultMessageActions,\n messageContentOrder: messageContentOrderProp,\n messagesContext,\n MessageBounce,\n MessageSimple,\n onLongPress: onLongPressProp,\n onLongPressMessage: onLongPressMessageProp,\n onPress: onPressProp,\n onPressMessage: onPressMessageProp,\n onPressIn: onPressInProp,\n onPressInMessage: onPressInMessageProp,\n onThreadSelect,\n openThread,\n OverlayReactionList,\n preventPress,\n removeMessage,\n deleteReaction,\n retrySendMessage,\n selectReaction,\n setData,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n showAvatar,\n showMessageStatus,\n showUnreadUnderlay,\n style,\n supportedReactions,\n t,\n isTargetedMessage,\n threadList = false,\n updateMessage,\n } = props;\n const { client } = chatContext;\n const {\n theme: {\n colors: { bg_gradient_start, targetedMessageBackground },\n messageSimple: { targetedMessageContainer, targetedMessageUnderlay },\n },\n } = useTheme();\n\n const actionsEnabled =\n message.type === 'regular' && message.status === MessageStatusTypes.RECEIVED;\n\n const isMyMessage = client && message && client.userID === message.user?.id;\n\n const handleAction = async (name: string, value: string) => {\n if (message.id) {\n const data = await channel?.sendAction(message.id, { [name]: value });\n if (data?.message) {\n updateMessage(data.message);\n } else {\n removeMessage({\n id: message.id,\n parent_id: message.parent_id,\n });\n }\n }\n };\n\n const onPressQuotedMessage = (quotedMessage: MessageType<StreamChatGenerics>) => {\n if (!goToMessage) return;\n\n goToMessage(quotedMessage.id);\n };\n\n const errorOrFailed = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onPress = (error = errorOrFailed) => {\n if (dismissKeyboardOnMessageTouch) {\n Keyboard.dismiss();\n }\n const quotedMessage = message.quoted_message as MessageType<StreamChatGenerics>;\n if (error) {\n /**\n * If its a Blocked message, we don't do anything as per specs.\n */\n if (isBlockedMessage(message)) {\n return;\n }\n /**\n * If its a Bounced message, we open the message bounced options modal.\n */\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n showMessageOverlay(false, true);\n } else if (quotedMessage) {\n onPressQuotedMessage(quotedMessage);\n }\n };\n\n const alignment =\n forceAlignMessages && (forceAlignMessages === 'left' || forceAlignMessages === 'right')\n ? forceAlignMessages\n : isMyMessage\n ? 'right'\n : 'left';\n\n /**\n * attachments contain files/images or other attachments\n *\n * if a URL attachment is present with a file/image then we\n * show just the text and markdown should make the link\n * clickable\n */\n const attachments =\n !isMessageTypeDeleted && Array.isArray(message.attachments)\n ? message.attachments.reduce(\n (acc, cur) => {\n if (cur.type === 'file') {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'video' && !cur.og_scrape_url && isVideoPackageAvailable()) {\n acc.videos.push({\n image_url: cur.asset_url,\n thumb_url: cur.thumb_url,\n type: 'video',\n });\n acc.other = [];\n } else if (cur.type === 'video' && !cur.og_scrape_url) {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'audio') {\n acc.files.push(cur);\n } else if (cur.type === 'image' && !cur.title_link && !cur.og_scrape_url) {\n /**\n * this next if is not combined with the above one for cases where we have\n * an image with no url links at all falling back to being an attachment\n */\n if (cur.image_url || cur.thumb_url) {\n acc.images.push(cur);\n acc.other = []; // remove other attachments if an image exists\n }\n // only add other attachments if there are no files/images\n } else if (!acc.files.length && !acc.images.length && !acc.videos.length) {\n acc.other.push(cur);\n }\n\n return acc;\n },\n {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n },\n )\n : {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n };\n /**\n * Check if any actions to prevent long press\n */\n const hasAttachmentActions =\n !isMessageTypeDeleted &&\n Array.isArray(message.attachments) &&\n message.attachments.some((attachment) => attachment.actions && attachment.actions.length);\n\n const messageContentOrder = messageContentOrderProp.filter((content) => {\n if (content === 'quoted_reply') {\n return !!message.quoted_message;\n }\n\n switch (content) {\n case 'attachments':\n return !!attachments.other.length;\n case 'files':\n return !!attachments.files.length;\n case 'gallery':\n return !!attachments.images.length || !!attachments.videos.length;\n case 'text':\n default:\n return !!message.text;\n }\n });\n\n const emojiOnlyText = useMemo(() => {\n if (!message.text) return false;\n return hasOnlyEmojis(message.text);\n }, [message.text]);\n\n const onlyEmojis =\n !attachments.files.length &&\n !attachments.images.length &&\n !attachments.other.length &&\n emojiOnlyText;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const hasReactions =\n !isMessageTypeDeleted && !!message.latest_reactions && message.latest_reactions.length > 0;\n\n const clientId = client.userID;\n\n const reactions = hasReactions\n ? supportedReactions.reduce((acc, cur) => {\n const reactionType = cur.type;\n const reactionsOfReactionType = message.latest_reactions?.filter(\n (reaction) => reaction.type === reactionType,\n );\n\n if (reactionsOfReactionType?.length) {\n const hasOwnReaction = reactionsOfReactionType.some(\n (reaction) => reaction.user_id === clientId,\n );\n acc.push({ own: hasOwnReaction, type: reactionType });\n }\n\n return acc;\n }, [] as Reactions)\n : [];\n\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n message,\n retrySendMessage,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n });\n\n const {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n } = useMessageActions({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n removeMessage,\n retrySendMessage,\n selectReaction,\n sendReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n updateMessage,\n });\n\n const { userLanguage } = useTranslationContext();\n\n const showMessageOverlay = async (messageReactions = false, error = errorOrFailed) => {\n await dismissKeyboard();\n\n const isThreadMessage = threadList || !!message.parent_id;\n\n const dismissOverlay = () => setOverlay('none');\n\n const messageActions =\n typeof messageActionsProp !== 'function'\n ? messageActionsProp\n : messageActionsProp({\n blockUser,\n copyMessage,\n deleteMessage,\n dismissOverlay,\n editMessage,\n error,\n flagMessage,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n muteUser,\n ownCapabilities,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n });\n\n setData({\n alignment,\n chatContext,\n clientId: client.userID,\n files: attachments.files,\n groupStyles,\n handleReaction: ownCapabilities.sendReaction ? handleReaction : undefined,\n images: attachments.images,\n message,\n messageActions: messageActions?.filter(Boolean) as MessageActionListItemProps[] | undefined,\n messageContext: { ...messageContext, disabled: true, preventPress: true },\n messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,\n messagesContext: { ...messagesContext, messageContentOrder },\n onlyEmojis,\n otherAttachments: attachments.other,\n OverlayReactionList,\n ownCapabilities,\n supportedReactions,\n threadList,\n userLanguage,\n videos: attachments.videos,\n });\n\n setOverlay('message');\n };\n\n const actionHandlers: MessageActionHandlers = {\n deleteMessage: handleDeleteMessage,\n editMessage: handleEditMessage,\n pinMessage: handleTogglePinMessage,\n quotedReply: handleQuotedReplyMessage,\n resendMessage: handleResendMessage,\n showMessageOverlay,\n toggleBanUser: handleToggleBanUser,\n toggleMuteUser: handleToggleMuteUser,\n toggleReaction: handleToggleReaction,\n };\n\n const onLongPressMessage =\n disabled || hasAttachmentActions || isBlockedMessage(message)\n ? () => null\n : onLongPressMessageProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressMessageProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n message,\n })\n : onLongPressProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n })\n : enableLongPress\n ? () => {\n // If a message is bounced, on long press the message bounce options modal should open.\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n myMessageTheme: messagesContext.myMessageTheme,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n {isBounceDialogOpen && <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />}\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n messagesContext: prevMessagesContext,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n messagesContext: nextMessagesContext,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\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 const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n const prevMyMessageTheme = JSON.stringify(prevMessagesContext?.myMessageTheme);\n const nextMyMessageTheme = JSON.stringify(nextMessagesContext?.myMessageTheme);\n\n const messageThemeEqual = prevMyMessageTheme === nextMyMessageTheme;\n if (!messageThemeEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
@@ -145,7 +145,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
145
145
  __self: _this,
146
146
  __source: {
147
147
  fileName: _jsxFileName,
148
- lineNumber: 212,
148
+ lineNumber: 213,
149
149
  columnNumber: 7
150
150
  }
151
151
  });
@@ -231,7 +231,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
231
231
  __self: _this,
232
232
  __source: {
233
233
  fileName: _jsxFileName,
234
- lineNumber: 281,
234
+ lineNumber: 282,
235
235
  columnNumber: 5
236
236
  }
237
237
  }), MessageHeader && _react["default"].createElement(MessageHeader, {
@@ -247,7 +247,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
247
247
  __self: _this,
248
248
  __source: {
249
249
  fileName: _jsxFileName,
250
- lineNumber: 322,
250
+ lineNumber: 323,
251
251
  columnNumber: 9
252
252
  }
253
253
  }), _react["default"].createElement(_reactNative.View, {
@@ -256,7 +256,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
256
256
  __self: _this,
257
257
  __source: {
258
258
  fileName: _jsxFileName,
259
- lineNumber: 334,
259
+ lineNumber: 335,
260
260
  columnNumber: 7
261
261
  }
262
262
  }, hasThreadReplies && !threadList && !noBorder && _react["default"].createElement(_reactNative.View, {
@@ -269,7 +269,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
269
269
  __self: _this,
270
270
  __source: {
271
271
  fileName: _jsxFileName,
272
- lineNumber: 336,
272
+ lineNumber: 337,
273
273
  columnNumber: 11
274
274
  }
275
275
  }), _react["default"].createElement(_reactNative.View, {
@@ -283,7 +283,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
283
283
  __self: _this,
284
284
  __source: {
285
285
  fileName: _jsxFileName,
286
- lineNumber: 349,
286
+ lineNumber: 350,
287
287
  columnNumber: 9
288
288
  }
289
289
  }, messageContentOrder.map(function (messageContentType, messageContentOrderIndex) {
@@ -295,7 +295,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
295
295
  __self: _this,
296
296
  __source: {
297
297
  fileName: _jsxFileName,
298
- lineNumber: 368,
298
+ lineNumber: 369,
299
299
  columnNumber: 21
300
300
  }
301
301
  }, _react["default"].createElement(Reply, {
@@ -307,7 +307,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
307
307
  __self: _this,
308
308
  __source: {
309
309
  fileName: _jsxFileName,
310
- lineNumber: 372,
310
+ lineNumber: 373,
311
311
  columnNumber: 23
312
312
  }
313
313
  }));
@@ -319,7 +319,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
319
319
  __self: _this,
320
320
  __source: {
321
321
  fileName: _jsxFileName,
322
- lineNumber: 378,
322
+ lineNumber: 379,
323
323
  columnNumber: 19
324
324
  }
325
325
  });
@@ -331,7 +331,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
331
331
  __self: _this,
332
332
  __source: {
333
333
  fileName: _jsxFileName,
334
- lineNumber: 382,
334
+ lineNumber: 383,
335
335
  columnNumber: 19
336
336
  }
337
337
  });
@@ -341,7 +341,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
341
341
  __self: _this,
342
342
  __source: {
343
343
  fileName: _jsxFileName,
344
- lineNumber: 388,
344
+ lineNumber: 389,
345
345
  columnNumber: 24
346
346
  }
347
347
  });
@@ -352,7 +352,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
352
352
  __self: _this,
353
353
  __source: {
354
354
  fileName: _jsxFileName,
355
- lineNumber: 392,
355
+ lineNumber: 393,
356
356
  columnNumber: 19
357
357
  }
358
358
  });
@@ -361,7 +361,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
361
361
  __self: _this,
362
362
  __source: {
363
363
  fileName: _jsxFileName,
364
- lineNumber: 399,
364
+ lineNumber: 400,
365
365
  columnNumber: 19
366
366
  }
367
367
  })), _react["default"].createElement(MessageReplies, {
@@ -370,7 +370,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
370
370
  __self: _this,
371
371
  __source: {
372
372
  fileName: _jsxFileName,
373
- lineNumber: 401,
373
+ lineNumber: 402,
374
374
  columnNumber: 7
375
375
  }
376
376
  }), _react["default"].createElement(MessageFooter, {
@@ -379,7 +379,7 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
379
379
  __self: _this,
380
380
  __source: {
381
381
  fileName: _jsxFileName,
382
- lineNumber: 402,
382
+ lineNumber: 403,
383
383
  columnNumber: 7
384
384
  }
385
385
  }));
@@ -394,6 +394,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
394
394
  prevMembers = prevProps.members,
395
395
  prevMessage = prevProps.message,
396
396
  prevMessageContentOrder = prevProps.messageContentOrder,
397
+ prevMyMessageTheme = prevProps.myMessageTheme,
397
398
  prevOnlyEmojis = prevProps.onlyEmojis,
398
399
  prevOtherAttachments = prevProps.otherAttachments,
399
400
  prevT = prevProps.t,
@@ -405,6 +406,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
405
406
  nextMembers = nextProps.members,
406
407
  nextMessage = nextProps.message,
407
408
  nextMessageContentOrder = nextProps.messageContentOrder,
409
+ nextMyMessageTheme = nextProps.myMessageTheme,
408
410
  nextOnlyEmojis = nextProps.onlyEmojis,
409
411
  nextOtherAttachments = nextProps.otherAttachments,
410
412
  nextT = nextProps.t,
@@ -453,6 +455,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
453
455
  if (!tEqual) return false;
454
456
  var tDateTimeParserEqual = prevTDateTimeParser === nextTDateTimeParser;
455
457
  if (!tDateTimeParserEqual) return false;
458
+ var messageThemeEqual = JSON.stringify(prevMyMessageTheme) === JSON.stringify(nextMyMessageTheme);
459
+ if (!messageThemeEqual) return false;
456
460
  return true;
457
461
  };
458
462
  var MemoizedMessageContent = _react["default"].memo(MessageContentWithContext, areEqual);
@@ -490,6 +494,7 @@ var MessageContent = function MessageContent(props) {
490
494
  MessageHeader = _useMessagesContext.MessageHeader,
491
495
  MessageReplies = _useMessagesContext.MessageReplies,
492
496
  MessageStatus = _useMessagesContext.MessageStatus,
497
+ myMessageTheme = _useMessagesContext.myMessageTheme,
493
498
  Reply = _useMessagesContext.Reply;
494
499
  var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
495
500
  t = _useTranslationContex.t,
@@ -518,6 +523,7 @@ var MessageContent = function MessageContent(props) {
518
523
  MessageHeader: MessageHeader,
519
524
  MessageReplies: MessageReplies,
520
525
  MessageStatus: MessageStatus,
526
+ myMessageTheme: myMessageTheme,
521
527
  onLongPress: onLongPress,
522
528
  onlyEmojis: onlyEmojis,
523
529
  onPress: onPress,
@@ -533,7 +539,7 @@ var MessageContent = function MessageContent(props) {
533
539
  __self: _this,
534
540
  __source: {
535
541
  fileName: _jsxFileName,
536
- lineNumber: 588,
542
+ lineNumber: 596,
537
543
  columnNumber: 5
538
544
  }
539
545
  }));