stream-chat-react-native-core 5.25.0-beta.5 → 5.25.0-beta.7
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/Channel/Channel.js +20 -15
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +22 -5
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +10 -6
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js +4 -3
- package/lib/commonjs/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +5 -2
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +7 -3
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +7 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +5 -5
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +32 -30
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/es.json +57 -57
- package/lib/commonjs/i18n/fr.json +57 -57
- package/lib/commonjs/i18n/he.json +57 -57
- package/lib/commonjs/i18n/hi.json +57 -57
- package/lib/commonjs/i18n/it.json +57 -57
- package/lib/commonjs/i18n/ja.json +57 -57
- package/lib/commonjs/i18n/ko.json +57 -57
- package/lib/commonjs/i18n/nl.json +57 -57
- package/lib/commonjs/i18n/ru.json +54 -54
- package/lib/commonjs/i18n/tr.json +54 -54
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Channel/Channel.js +20 -15
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +22 -5
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +10 -6
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useSyncDatabase.js +4 -3
- package/lib/module/components/Chat/hooks/useSyncDatabase.js.map +1 -1
- package/lib/module/components/Message/Message.js +5 -2
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +7 -3
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +7 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +5 -5
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +32 -30
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/es.json +57 -57
- package/lib/module/i18n/fr.json +57 -57
- package/lib/module/i18n/he.json +57 -57
- package/lib/module/i18n/hi.json +57 -57
- package/lib/module/i18n/it.json +57 -57
- package/lib/module/i18n/ja.json +57 -57
- package/lib/module/i18n/ko.json +57 -57
- package/lib/module/i18n/nl.json +57 -57
- package/lib/module/i18n/ru.json +54 -54
- package/lib/module/i18n/tr.json +54 -54
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +62 -1
- package/lib/typescript/components/Chat/hooks/useSyncDatabase.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +2 -2
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/es.json +57 -57
- package/lib/typescript/i18n/fr.json +57 -57
- package/lib/typescript/i18n/he.json +57 -57
- package/lib/typescript/i18n/hi.json +57 -57
- package/lib/typescript/i18n/it.json +57 -57
- package/lib/typescript/i18n/ja.json +57 -57
- package/lib/typescript/i18n/ko.json +57 -57
- package/lib/typescript/i18n/nl.json +57 -57
- package/lib/typescript/i18n/ru.json +54 -54
- package/lib/typescript/i18n/tr.json +54 -54
- package/package.json +2 -2
- package/src/components/Channel/Channel.tsx +8 -2
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +11 -1
- package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +24 -6
- package/src/components/Chat/Chat.tsx +5 -0
- package/src/components/Chat/hooks/useSyncDatabase.ts +4 -2
- package/src/components/Message/Message.tsx +6 -1
- package/src/components/Message/MessageSimple/MessageContent.tsx +5 -0
- package/src/components/Message/MessageSimple/MessageSimple.tsx +8 -2
- package/src/components/MessageInput/MessageInput.tsx +3 -7
- package/src/components/MessageList/MessageList.tsx +3 -1
- package/src/contexts/messageInputContext/MessageInputContext.tsx +1 -1
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +3 -0
- package/src/i18n/en.json +1 -1
- package/src/i18n/es.json +57 -57
- package/src/i18n/fr.json +57 -57
- package/src/i18n/he.json +57 -57
- package/src/i18n/hi.json +57 -57
- package/src/i18n/it.json +57 -57
- package/src/i18n/ja.json +57 -57
- package/src/i18n/ko.json +57 -57
- package/src/i18n/nl.json +57 -57
- package/src/i18n/ru.json +54 -54
- package/src/i18n/tr.json +54 -54
- 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","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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"}
|
|
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","prevDisabled","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevMessagesContext","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextDisabled","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextMessagesContext","nextShowUnreadUnderlay","nextT","disabledEqual","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, 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 disabled: prevDisabled,\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 disabled: nextDisabled,\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 disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\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":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,wBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAN,OAAA;AAIA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AAIA,IAAAS,eAAA,GAAAT,OAAA;AAKA,IAAAU,sBAAA,GAAAV,OAAA;AAIA,IAAAW,gBAAA,GAAAX,OAAA;AAIA,IAAAY,eAAA,GAAAZ,OAAA;AAIA,IAAAa,uBAAA,GAAAb,OAAA;AACA,IAAAc,aAAA,GAAAd,OAAA;AACA,IAAAe,cAAA,GAAAf,OAAA;AACA,IAAAgB,mBAAA,GAAAhB,OAAA;AAKA,IAAAiB,OAAA,GAAAjB,OAAA;AAEA,IAAAkB,MAAA,GAAAlB,OAAA;AAOA,IAAAmB,eAAA,GAAAnB,OAAA;AAG6C,IAAAoB,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAxB,wBAAA4B,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAoK7C,IAAMW,kBAAkB,GAAG,SAArBA,kBAAkBA,CAGtBC,KAAkD,EAC/C;EAAA,IAAAC,aAAA;EACH,IAAAC,SAAA,GAAoD,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAA5DI,kBAAkB,GAAAF,UAAA;IAAEG,qBAAqB,GAAAH,UAAA;EAChD,IAAMI,oBAAoB,GAAGR,KAAK,CAACS,OAAO,CAACC,IAAI,KAAK,SAAS;EAE7D,IACEC,YAAY,GA0DVX,KAAK,CA1DPW,YAAY;IACZC,OAAO,GAyDLZ,KAAK,CAzDPY,OAAO;IACQC,wBAAwB,GAwDrCb,KAAK,CAxDPc,aAAa;IACbC,QAAQ,GAuDNf,KAAK,CAvDPe,QAAQ;IACRC,eAAe,GAsDbhB,KAAK,CAtDPgB,eAAe;IACfC,6BAA6B,GAqD3BjB,KAAK,CArDPiB,6BAA6B;IAAAC,qBAAA,GAqD3BlB,KAAK,CApDPmB,eAAe;IAAfA,eAAe,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IACtBE,qBAAqB,GAmDnBpB,KAAK,CAnDPoB,qBAAqB;IAAAC,qBAAA,GAmDnBrB,KAAK,CAlDPsB,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAC1BE,WAAW,GAiDTvB,KAAK,CAjDPuB,WAAW;IAAAC,kBAAA,GAiDTxB,KAAK,CAhDPyB,WAAW;IAAXA,WAAW,GAAAD,kBAAA,cAAG,CAAC,QAAQ,CAAC,GAAAA,kBAAA;IACxBE,WAAW,GA+CT1B,KAAK,CA/CP0B,WAAW;IACXC,UAAU,GA8CR3B,KAAK,CA9CP2B,UAAU;IACVC,YAAY,GA6CV5B,KAAK,CA7CP4B,YAAY;IACZC,UAAU,GA4CR7B,KAAK,CA5CP6B,UAAU;IACVC,UAAU,GA2CR9B,KAAK,CA3CP8B,UAAU;IACVC,UAAU,GA0CR/B,KAAK,CA1CP+B,UAAU;IACVC,gBAAgB,GAyCdhC,KAAK,CAzCPgC,gBAAgB;IAChBC,iBAAiB,GAwCfjC,KAAK,CAxCPiC,iBAAiB;IACDC,kBAAkB,GAuChClC,KAAK,CAvCPmC,cAAc;IACdC,WAAW,GAsCTpC,KAAK,CAtCPoC,WAAW;IACXC,iBAAiB,GAqCfrC,KAAK,CArCPqC,iBAAiB;IACjBC,WAAW,GAoCTtC,KAAK,CApCPsC,WAAW;IACXC,cAAc,GAmCZvC,KAAK,CAnCPuC,cAAc;IACdC,OAAO,GAkCLxC,KAAK,CAlCPwC,OAAO;IACP/B,OAAO,GAiCLT,KAAK,CAjCPS,OAAO;IAAAgC,qBAAA,GAiCLzC,KAAK,CAhCP0C,cAAc;IAAEC,kBAAkB,GAAAF,qBAAA,cAAGG,8BAAqB,GAAAH,qBAAA;IACrCI,uBAAuB,GA+B1C7C,KAAK,CA/BP8C,mBAAmB;IACnBC,eAAe,GA8Bb/C,KAAK,CA9BP+C,eAAe;IACfC,aAAa,GA6BXhD,KAAK,CA7BPgD,aAAa;IACbC,aAAa,GA4BXjD,KAAK,CA5BPiD,aAAa;IACAC,eAAe,GA2B1BlD,KAAK,CA3BPmD,WAAW;IACSC,sBAAsB,GA0BxCpD,KAAK,CA1BPqD,kBAAkB;IACTC,WAAW,GAyBlBtD,KAAK,CAzBPuD,OAAO;IACSC,kBAAkB,GAwBhCxD,KAAK,CAxBPyD,cAAc;IACHC,aAAa,GAuBtB1D,KAAK,CAvBP2D,SAAS;IACSC,oBAAoB,GAsBpC5D,KAAK,CAtBP6D,gBAAgB;IAChBC,cAAc,GAqBZ9D,KAAK,CArBP8D,cAAc;IACdC,UAAU,GAoBR/D,KAAK,CApBP+D,UAAU;IACVC,mBAAmB,GAmBjBhE,KAAK,CAnBPgE,mBAAmB;IACnBC,YAAY,GAkBVjE,KAAK,CAlBPiE,YAAY;IACZC,aAAa,GAiBXlE,KAAK,CAjBPkE,aAAa;IACbC,cAAc,GAgBZnE,KAAK,CAhBPmE,cAAc;IACdC,gBAAgB,GAedpE,KAAK,CAfPoE,gBAAgB;IAChBC,cAAc,GAcZrE,KAAK,CAdPqE,cAAc;IACdC,OAAO,GAaLtE,KAAK,CAbPsE,OAAO;IACPC,eAAe,GAYbvE,KAAK,CAZPuE,eAAe;IACfC,UAAU,GAWRxE,KAAK,CAXPwE,UAAU;IACVC,qBAAqB,GAUnBzE,KAAK,CAVPyE,qBAAqB;IACrBC,UAAU,GASR1E,KAAK,CATP0E,UAAU;IACVC,iBAAiB,GAQf3E,KAAK,CARP2E,iBAAiB;IACjBC,kBAAkB,GAOhB5E,KAAK,CAPP4E,kBAAkB;IAClBC,KAAK,GAMH7E,KAAK,CANP6E,KAAK;IACLC,kBAAkB,GAKhB9E,KAAK,CALP8E,kBAAkB;IAClBC,CAAC,GAIC/E,KAAK,CAJP+E,CAAC;IACDC,iBAAiB,GAGfhF,KAAK,CAHPgF,iBAAiB;IAAAC,iBAAA,GAGfjF,KAAK,CAFPkF,UAAU;IAAVA,UAAU,GAAAD,iBAAA,cAAG,KAAK,GAAAA,iBAAA;IAClBE,aAAa,GACXnF,KAAK,CADPmF,aAAa;EAEf,IAAQC,MAAM,GAAK9C,WAAW,CAAtB8C,MAAM;EACd,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAJZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,iBAAiB,GAAAF,qBAAA,CAAjBE,iBAAiB;IAAEC,yBAAyB,GAAAH,qBAAA,CAAzBG,yBAAyB;IAAAC,qBAAA,GAAAN,eAAA,CACtDO,aAAa;IAAIC,wBAAwB,GAAAF,qBAAA,CAAxBE,wBAAwB;IAAEC,uBAAuB,GAAAH,qBAAA,CAAvBG,uBAAuB;EAItE,IAAMC,cAAc,GAClBxF,OAAO,CAACC,IAAI,KAAK,SAAS,IAAID,OAAO,CAACyF,MAAM,KAAKC,yBAAkB,CAACC,QAAQ;EAE9E,IAAMC,WAAW,GAAGjB,MAAM,IAAI3E,OAAO,IAAI2E,MAAM,CAACkB,MAAM,OAAArG,aAAA,GAAKQ,OAAO,CAAC8F,IAAI,qBAAZtG,aAAA,CAAcuG,EAAE;EAE3E,IAAMC,YAAY;IAAA,IAAAC,IAAA,OAAAC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAOC,IAAY,EAAEC,KAAa;MAAA,IAAAC,IAAA;MAAA,OAAAL,YAAA,YAAAM,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,KACjD7G,OAAO,CAAC+F,EAAE;cAAAY,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACO1G,OAAO,oBAAPA,OAAO,CAAE2G,UAAU,CAAC9G,OAAO,CAAC+F,EAAE,MAAAgB,gBAAA,iBAAKT,IAAI,EAAGC,KAAK,CAAE,CAAC;UAAA;YAA/DC,IAAI,GAAAG,QAAA,CAAAK,IAAA;YACV,IAAIR,IAAI,YAAJA,IAAI,CAAExG,OAAO,EAAE;cACjB0E,aAAa,CAAC8B,IAAI,CAACxG,OAAO,CAAC;YAC7B,CAAC,MAAM;cACLyD,aAAa,CAAC;gBACZsC,EAAE,EAAE/F,OAAO,CAAC+F,EAAE;gBACdkB,SAAS,EAAEjH,OAAO,CAACiH;cACrB,CAAC,CAAC;YACJ;UAAC;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAb,OAAA;IAAA,CAEJ;IAAA,gBAZKL,YAAYA,CAAAmB,EAAA,EAAAC,GAAA;MAAA,OAAAnB,IAAA,CAAAoB,KAAA,OAAAC,SAAA;IAAA;EAAA,GAYjB;EAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,aAA8C,EAAK;IAC/E,IAAI,CAAC1G,WAAW,EAAE;IAElBA,WAAW,CAAC0G,aAAa,CAACzB,EAAE,CAAC;EAC/B,CAAC;EAED,IAAM0B,aAAa,GAAGzH,OAAO,CAACC,IAAI,KAAK,OAAO,IAAID,OAAO,CAACyF,MAAM,KAAKC,yBAAkB,CAACgC,MAAM;EAE9F,IAAM5E,QAAO,GAAG,SAAVA,OAAOA,CAAA,EAA8B;IAAA,IAA1B6E,KAAK,GAAAL,SAAA,CAAAM,MAAA,QAAAN,SAAA,QAAAO,SAAA,GAAAP,SAAA,MAAGG,aAAa;IACpC,IAAIjH,6BAA6B,EAAE;MACjCsH,qBAAQ,CAACC,OAAO,CAAC,CAAC;IACpB;IACA,IAAMP,aAAa,GAAGxH,OAAO,CAACgI,cAAiD;IAC/E,IAAIL,KAAK,EAAE;MAIT,IAAI,IAAAM,uBAAgB,EAACjI,OAAO,CAAC,EAAE;QAC7B;MACF;MAIA,IAAI,IAAAkI,uBAAgB,EAAClI,OAAO,CAAC,EAAE;QAC7BF,qBAAqB,CAAC,IAAI,CAAC;QAC3B;MACF;MACAqI,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC;IACjC,CAAC,MAAM,IAAIX,aAAa,EAAE;MACxBD,oBAAoB,CAACC,aAAa,CAAC;IACrC;EACF,CAAC;EAED,IAAMY,SAAS,GACbvH,kBAAkB,KAAKA,kBAAkB,KAAK,MAAM,IAAIA,kBAAkB,KAAK,OAAO,CAAC,GACnFA,kBAAkB,GAClB+E,WAAW,GACX,OAAO,GACP,MAAM;EASZ,IAAMyC,WAAW,GACf,CAACtI,oBAAoB,IAAIuI,KAAK,CAACC,OAAO,CAACvI,OAAO,CAACqI,WAAW,CAAC,GACvDrI,OAAO,CAACqI,WAAW,CAACG,MAAM,CACxB,UAACC,GAAG,EAAEC,GAAG,EAAK;IACZ,IAAIA,GAAG,CAACzI,IAAI,KAAK,MAAM,EAAE;MACvBwI,GAAG,CAACE,KAAK,CAACC,IAAI,CAACF,GAAG,CAAC;MACnBD,GAAG,CAACI,KAAK,GAAG,EAAE;IAChB,CAAC,MAAM,IAAIH,GAAG,CAACzI,IAAI,KAAK,OAAO,IAAI,CAACyI,GAAG,CAACI,aAAa,IAAI,IAAAC,+BAAuB,EAAC,CAAC,EAAE;MAClFN,GAAG,CAACO,MAAM,CAACJ,IAAI,CAAC;QACdK,SAAS,EAAEP,GAAG,CAACQ,SAAS;QACxBC,SAAS,EAAET,GAAG,CAACS,SAAS;QACxBlJ,IAAI,EAAE;MACR,CAAC,CAAC;MACFwI,GAAG,CAACI,KAAK,GAAG,EAAE;IAChB,CAAC,MAAM,IAAIH,GAAG,CAACzI,IAAI,KAAK,OAAO,IAAI,CAACyI,GAAG,CAACI,aAAa,EAAE;MACrDL,GAAG,CAACE,KAAK,CAACC,IAAI,CAACF,GAAG,CAAC;MACnBD,GAAG,CAACI,KAAK,GAAG,EAAE;IAChB,CAAC,MAAM,IAAIH,GAAG,CAACzI,IAAI,KAAK,OAAO,EAAE;MAC/BwI,GAAG,CAACE,KAAK,CAACC,IAAI,CAACF,GAAG,CAAC;IACrB,CAAC,MAAM,IAAIA,GAAG,CAACzI,IAAI,KAAK,OAAO,IAAI,CAACyI,GAAG,CAACU,UAAU,IAAI,CAACV,GAAG,CAACI,aAAa,EAAE;MAKxE,IAAIJ,GAAG,CAACO,SAAS,IAAIP,GAAG,CAACS,SAAS,EAAE;QAClCV,GAAG,CAACY,MAAM,CAACT,IAAI,CAACF,GAAG,CAAC;QACpBD,GAAG,CAACI,KAAK,GAAG,EAAE;MAChB;IAEF,CAAC,MAAM,IAAI,CAACJ,GAAG,CAACE,KAAK,CAACf,MAAM,IAAI,CAACa,GAAG,CAACY,MAAM,CAACzB,MAAM,IAAI,CAACa,GAAG,CAACO,MAAM,CAACpB,MAAM,EAAE;MACxEa,GAAG,CAACI,KAAK,CAACD,IAAI,CAACF,GAAG,CAAC;IACrB;IAEA,OAAOD,GAAG;EACZ,CAAC,EACD;IACEE,KAAK,EAAE,EAAsC;IAC7CU,MAAM,EAAE,EAAsC;IAC9CR,KAAK,EAAE,EAAsC;IAC7CG,MAAM,EAAE;EACV,CACF,CAAC,GACD;IACEL,KAAK,EAAE,EAAsC;IAC7CU,MAAM,EAAE,EAAsC;IAC9CR,KAAK,EAAE,EAAsC;IAC7CG,MAAM,EAAE;EACV,CAAC;EAIP,IAAMM,oBAAoB,GACxB,CAACvJ,oBAAoB,IACrBuI,KAAK,CAACC,OAAO,CAACvI,OAAO,CAACqI,WAAW,CAAC,IAClCrI,OAAO,CAACqI,WAAW,CAACkB,IAAI,CAAC,UAACC,UAAU;IAAA,OAAKA,UAAU,CAACC,OAAO,IAAID,UAAU,CAACC,OAAO,CAAC7B,MAAM;EAAA,EAAC;EAE3F,IAAMvF,mBAAmB,GAAGD,uBAAuB,CAACsH,MAAM,CAAC,UAACC,OAAO,EAAK;IACtE,IAAIA,OAAO,KAAK,cAAc,EAAE;MAC9B,OAAO,CAAC,CAAC3J,OAAO,CAACgI,cAAc;IACjC;IAEA,QAAQ2B,OAAO;MACb,KAAK,aAAa;QAChB,OAAO,CAAC,CAACtB,WAAW,CAACQ,KAAK,CAACjB,MAAM;MACnC,KAAK,OAAO;QACV,OAAO,CAAC,CAACS,WAAW,CAACM,KAAK,CAACf,MAAM;MACnC,KAAK,SAAS;QACZ,OAAO,CAAC,CAACS,WAAW,CAACgB,MAAM,CAACzB,MAAM,IAAI,CAAC,CAACS,WAAW,CAACW,MAAM,CAACpB,MAAM;MACnE,KAAK,MAAM;MACX;QACE,OAAO,CAAC,CAAC5H,OAAO,CAAC4J,IAAI;IACzB;EACF,CAAC,CAAC;EAEF,IAAMC,aAAa,GAAG,IAAAC,cAAO,EAAC,YAAM;IAClC,IAAI,CAAC9J,OAAO,CAAC4J,IAAI,EAAE,OAAO,KAAK;IAC/B,OAAO,IAAAG,oBAAa,EAAC/J,OAAO,CAAC4J,IAAI,CAAC;EACpC,CAAC,EAAE,CAAC5J,OAAO,CAAC4J,IAAI,CAAC,CAAC;EAElB,IAAMI,UAAU,GACd,CAAC3B,WAAW,CAACM,KAAK,CAACf,MAAM,IACzB,CAACS,WAAW,CAACgB,MAAM,CAACzB,MAAM,IAC1B,CAACS,WAAW,CAACQ,KAAK,CAACjB,MAAM,IACzBiC,aAAa;EAEf,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,IAAI5G,cAAc,EAAE;MAClBA,cAAc,CAACrD,OAAO,CAAC;IACzB;IACA,IAAIsD,UAAU,EAAE;MACdA,UAAU,CAACtD,OAAO,CAAC;IACrB;EACF,CAAC;EAED,IAAMkK,YAAY,GAChB,CAACnK,oBAAoB,IAAI,CAAC,CAACC,OAAO,CAACmK,gBAAgB,IAAInK,OAAO,CAACmK,gBAAgB,CAACvC,MAAM,GAAG,CAAC;EAE5F,IAAMwC,QAAQ,GAAGzF,MAAM,CAACkB,MAAM;EAE9B,IAAMwE,SAAS,GAAGH,YAAY,GAC1B7F,kBAAkB,CAACmE,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;IAAA,IAAA4B,qBAAA;IACtC,IAAMC,YAAY,GAAG7B,GAAG,CAACzI,IAAI;IAC7B,IAAMuK,uBAAuB,IAAAF,qBAAA,GAAGtK,OAAO,CAACmK,gBAAgB,qBAAxBG,qBAAA,CAA0BZ,MAAM,CAC9D,UAACe,QAAQ;MAAA,OAAKA,QAAQ,CAACxK,IAAI,KAAKsK,YAAY;IAAA,CAC9C,CAAC;IAED,IAAIC,uBAAuB,YAAvBA,uBAAuB,CAAE5C,MAAM,EAAE;MACnC,IAAM8C,cAAc,GAAGF,uBAAuB,CAACjB,IAAI,CACjD,UAACkB,QAAQ;QAAA,OAAKA,QAAQ,CAACE,OAAO,KAAKP,QAAQ;MAAA,CAC7C,CAAC;MACD3B,GAAG,CAACG,IAAI,CAAC;QAAEgC,GAAG,EAAEF,cAAc;QAAEzK,IAAI,EAAEsK;MAAa,CAAC,CAAC;IACvD;IAEA,OAAO9B,GAAG;EACZ,CAAC,EAAE,EAAe,CAAC,GACnB,EAAE;EAEN,IAAMoC,eAAe,GAAG,IAAAC,iDAAyB,EAAC,CAAC;EAEnD,IAAAC,qBAAA,GASI,IAAAC,kDAAwB,EAAC;MAC3B7K,OAAO,EAAPA,OAAO;MACPwE,MAAM,EAANA,MAAM;MACNtE,aAAa,EAAED,wBAAwB;MACvCsD,cAAc,EAAdA,cAAc;MACd/C,qBAAqB,EAArBA,qBAAqB;MACrBX,OAAO,EAAPA,OAAO;MACP2D,gBAAgB,EAAhBA,gBAAgB;MAChBzD,YAAY,EAAZA,YAAY;MACZ4D,eAAe,EAAfA,eAAe;MACfE,qBAAqB,EAArBA,qBAAqB;MACrBK,kBAAkB,EAAlBA;IACF,CAAC,CAAC;IApBA4G,mBAAmB,GAAAF,qBAAA,CAAnBE,mBAAmB;IACnBC,iBAAiB,GAAAH,qBAAA,CAAjBG,iBAAiB;IACjBC,wBAAwB,GAAAJ,qBAAA,CAAxBI,wBAAwB;IACxBC,mBAAmB,GAAAL,qBAAA,CAAnBK,mBAAmB;IACnBC,mBAAmB,GAAAN,qBAAA,CAAnBM,mBAAmB;IACnBC,oBAAoB,GAAAP,qBAAA,CAApBO,oBAAoB;IACpBC,sBAAsB,GAAAR,qBAAA,CAAtBQ,sBAAsB;IACtBC,oBAAoB,GAAAT,qBAAA,CAApBS,oBAAoB;EAetB,IAAAC,kBAAA,GAaI,IAAAC,qCAAiB,EAAC;MACpBvL,OAAO,EAAPA,OAAO;MACPwE,MAAM,EAANA,MAAM;MACNtE,aAAa,EAAED,wBAAwB;MACvCsD,cAAc,EAAdA,cAAc;MACd/C,qBAAqB,EAArBA,qBAAqB;MACrBM,WAAW,EAAXA,WAAW;MACXC,UAAU,EAAVA,UAAU;MACVC,YAAY,EAAZA,YAAY;MACZC,UAAU,EAAVA,UAAU;MACVC,UAAU,EAAVA,UAAU;MACVC,UAAU,EAAVA,UAAU;MACVC,gBAAgB,EAAhBA,gBAAgB;MAChBC,iBAAiB,EAAjBA,iBAAiB;MACjBE,cAAc,EAAED,kBAAkB;MAClCE,WAAW,EAAXA,WAAW;MACXC,iBAAiB,EAAjBA,iBAAiB;MACjB5B,OAAO,EAAPA,OAAO;MACPqD,cAAc,EAAdA,cAAc;MACdC,UAAU,EAAVA,UAAU;MACVG,aAAa,EAAbA,aAAa;MACbE,gBAAgB,EAAhBA,gBAAgB;MAChBC,cAAc,EAAdA,cAAc;MACd1D,YAAY,EAAZA,YAAY;MACZ4D,eAAe,EAAfA,eAAe;MACfC,UAAU,EAAVA,UAAU;MACVC,qBAAqB,EAArBA,qBAAqB;MACrBK,kBAAkB,EAAlBA,kBAAkB;MAClBC,CAAC,EAADA,CAAC;MACDI,aAAa,EAAbA;IACF,CAAC,CAAC;IA1CAiH,SAAS,GAAAF,kBAAA,CAATE,SAAS;IACTC,WAAW,GAAAH,kBAAA,CAAXG,WAAW;IACXvL,aAAa,GAAAoL,kBAAA,CAAbpL,aAAa;IACbwL,WAAW,GAAAJ,kBAAA,CAAXI,WAAW;IACXC,WAAW,GAAAL,kBAAA,CAAXK,WAAW;IACXpK,cAAc,GAAA+J,kBAAA,CAAd/J,cAAc;IACdqK,QAAQ,GAAAN,kBAAA,CAARM,QAAQ;IACRC,UAAU,GAAAP,kBAAA,CAAVO,UAAU;IACVC,WAAW,GAAAR,kBAAA,CAAXQ,WAAW;IACXC,KAAK,GAAAT,kBAAA,CAALS,KAAK;IACLC,WAAW,GAAAV,kBAAA,CAAXU,WAAW;IACXC,YAAY,GAAAX,kBAAA,CAAZW,YAAY;EAiCd,IAAAC,qBAAA,GAAyB,IAAAC,yCAAqB,EAAC,CAAC;IAAxCC,YAAY,GAAAF,qBAAA,CAAZE,YAAY;EAEpB,IAAMpE,kBAAkB;IAAA,IAAAqE,KAAA,OAAAtG,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAqG,SAAA;MAAA,IAAAC,gBAAA;QAAA/E,KAAA;QAAAgF,eAAA;QAAAC,cAAA;QAAA3K,cAAA;QAAA4K,MAAA,GAAAvF,SAAA;MAAA,OAAAnB,YAAA,YAAAM,IAAA,UAAAqG,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAnG,IAAA,GAAAmG,SAAA,CAAAlG,IAAA;UAAA;YAAO6F,gBAAgB,GAAAG,MAAA,CAAAjF,MAAA,QAAAiF,MAAA,QAAAhF,SAAA,GAAAgF,MAAA,MAAG,KAAK;YAAElF,KAAK,GAAAkF,MAAA,CAAAjF,MAAA,QAAAiF,MAAA,QAAAhF,SAAA,GAAAgF,MAAA,MAAGpF,aAAa;YAAAsF,SAAA,CAAAlG,IAAA;YAAA,OACzEtG,eAAe,CAAC,CAAC;UAAA;YAEjBoM,eAAe,GAAGlI,UAAU,IAAI,CAAC,CAACzE,OAAO,CAACiH,SAAS;YAEnD2F,cAAc,GAAG,SAAjBA,cAAcA,CAAA;cAAA,OAAS7I,UAAU,CAAC,MAAM,CAAC;YAAA;YAEzC9B,cAAc,GAClB,OAAOC,kBAAkB,KAAK,UAAU,GACpCA,kBAAkB,GAClBA,kBAAkB,CAAC;cACjByJ,SAAS,EAATA,SAAS;cACTC,WAAW,EAAXA,WAAW;cACXvL,aAAa,EAAbA,aAAa;cACbuM,cAAc,EAAdA,cAAc;cACdf,WAAW,EAAXA,WAAW;cACXlE,KAAK,EAALA,KAAK;cACLmE,WAAW,EAAXA,WAAW;cACXlG,WAAW,EAAXA,WAAW;cACX+G,eAAe,EAAfA,eAAe;cACf3M,OAAO,EAAPA,OAAO;cACP0M,gBAAgB,EAAhBA,gBAAgB;cAChBX,QAAQ,EAARA,QAAQ;cACRlB,eAAe,EAAfA,eAAe;cACfmB,UAAU,EAAVA,UAAU;cACVC,WAAW,EAAXA,WAAW;cACXC,KAAK,EAALA,KAAK;cACLC,WAAW,EAAXA,WAAW;cACXC,YAAY,EAAZA;YACF,CAAC,CAAC;YAERvI,OAAO,CAAC;cACNuE,SAAS,EAATA,SAAS;cACTvG,WAAW,EAAXA,WAAW;cACXuI,QAAQ,EAAEzF,MAAM,CAACkB,MAAM;cACvB8C,KAAK,EAAEN,WAAW,CAACM,KAAK;cACxB3H,WAAW,EAAXA,WAAW;cACXU,cAAc,EAAEmJ,eAAe,CAAC3K,YAAY,GAAGwB,cAAc,GAAGmG,SAAS;cACzEwB,MAAM,EAAEhB,WAAW,CAACgB,MAAM;cAC1BrJ,OAAO,EAAPA,OAAO;cACPiC,cAAc,EAAEA,cAAc,oBAAdA,cAAc,CAAEyH,MAAM,CAACsD,OAAO,CAA6C;cAC3FC,cAAc,MAAAC,SAAA,iBAAOD,cAAc;gBAAEzJ,YAAY,EAAE;cAAI,EAAE;cACzD2J,oBAAoB,EAAE,CAACxF,KAAK,IAAI+E,gBAAgB,GAAGpI,CAAC,CAAC,mBAAmB,CAAC,GAAGuD,SAAS;cACrFvF,eAAe,MAAA4K,SAAA,iBAAO5K,eAAe;gBAAED,mBAAmB,EAAnBA;cAAmB,EAAE;cAC5D2H,UAAU,EAAVA,UAAU;cACVoD,gBAAgB,EAAE/E,WAAW,CAACQ,KAAK;cACnCtF,mBAAmB,EAAnBA,mBAAmB;cACnBsH,eAAe,EAAfA,eAAe;cACfxG,kBAAkB,EAAlBA,kBAAkB;cAClBI,UAAU,EAAVA,UAAU;cACV8H,YAAY,EAAZA,YAAY;cACZvD,MAAM,EAAEX,WAAW,CAACW;YACtB,CAAC,CAAC;YAEFjF,UAAU,CAAC,SAAS,CAAC;UAAC;UAAA;YAAA,OAAAgJ,SAAA,CAAA7F,IAAA;QAAA;MAAA,GAAAuF,QAAA;IAAA,CACvB;IAAA,gBAvDKtE,kBAAkBA,CAAA;MAAA,OAAAqE,KAAA,CAAAnF,KAAA,OAAAC,SAAA;IAAA;EAAA,GAuDvB;EAED,IAAM+F,cAAqC,GAAG;IAC5ChN,aAAa,EAAE4K,mBAAmB;IAClCY,WAAW,EAAEX,iBAAiB;IAC9Bc,UAAU,EAAET,sBAAsB;IAClCU,WAAW,EAAEd,wBAAwB;IACrCmC,aAAa,EAAElC,mBAAmB;IAClCjD,kBAAkB,EAAlBA,kBAAkB;IAClBoF,aAAa,EAAElC,mBAAmB;IAClCmC,cAAc,EAAElC,oBAAoB;IACpCmC,cAAc,EAAEjC;EAClB,CAAC;EAED,IAAM5I,kBAAkB,GACtBtC,QAAQ,IAAIgJ,oBAAoB,IAAI,IAAArB,uBAAgB,EAACjI,OAAO,CAAC,GACzD;IAAA,OAAM,IAAI;EAAA,IACV2C,sBAAsB,GACtB,UAAC+K,OAAiC;IAAA,OAChC/K,sBAAsB,CAAC;MACrB0K,cAAc,EAAdA,cAAc;MACdM,cAAc,EAAE,CAAAD,OAAO,oBAAPA,OAAO,CAAEC,cAAc,KAAIxF,kBAAkB;MAC7DyF,OAAO,EAAE,CAAAF,OAAO,oBAAPA,OAAO,CAAEE,OAAO,KAAI,SAAS;MACtCC,KAAK,EAAEH,OAAO,oBAAPA,OAAO,CAAEG,KAAK;MACrB7N,OAAO,EAAPA;IACF,CAAC,CAAC;EAAA,IACJyC,eAAe,GACf,UAACiL,OAAiC;IAAA,OAChCjL,eAAe,CAAC;MACd4K,cAAc,EAAdA,cAAc;MACdM,cAAc,EAAE,CAAAD,OAAO,oBAAPA,OAAO,CAAEC,cAAc,KAAIxF,kBAAkB;MAC7DyF,OAAO,EAAE,CAAAF,OAAO,oBAAPA,OAAO,CAAEE,OAAO,KAAI,SAAS;MACtCC,KAAK,EAAEH,OAAO,oBAAPA,OAAO,CAAEG;IAClB,CAAC,CAAC;EAAA,IACJnN,eAAe,GACf,YAAM;IAEJ,IAAI,IAAAwH,uBAAgB,EAAClI,OAAO,CAAC,EAAE;MAC7BF,qBAAqB,CAAC,IAAI,CAAC;MAC3B;IACF;IACA,IAAAgO,qBAAa,EAAC,cAAc,CAAC;IAC7B3F,kBAAkB,CAAC,KAAK,CAAC;EAC3B,CAAC,GACD;IAAA,OAAM,IAAI;EAAA;EAEhB,IAAM8E,cAAc,GAAG,IAAAc,gDAAuB,EAAC;IAC7CvI,cAAc,EAAdA,cAAc;IACd4C,SAAS,EAATA,SAAS;IACTjI,OAAO,EAAPA,OAAO;IACPG,QAAQ,EAARA,QAAQ;IACRqI,KAAK,EAAEN,WAAW,CAACM,KAAK;IACxB7H,WAAW,EAAXA,WAAW;IACXE,WAAW,EAAXA,WAAW;IACXgF,YAAY,EAAZA,YAAY;IACZiF,mBAAmB,EAAnBA,mBAAmB;IACnBC,iBAAiB,EAAjBA,iBAAiB;IACjBC,wBAAwB,EAAxBA,wBAAwB;IACxBC,mBAAmB,EAAnBA,mBAAmB;IACnBC,mBAAmB,EAAnBA,mBAAmB;IACnBC,oBAAoB,EAApBA,oBAAoB;IACpBE,oBAAoB,EAApBA,oBAAoB;IACpBtB,YAAY,EAAZA,YAAY;IACZb,MAAM,EAAEhB,WAAW,CAACgB,MAAM;IAC1BzD,WAAW,EAAXA,WAAW;IACXoI,gBAAgB,EAAE,CAAAhN,WAAW,oBAAXA,WAAW,CAAG,CAAC,CAAC,MAAK,QAAQ,IAAI,CAAAA,WAAW,oBAAXA,WAAW,CAAG,CAAC,CAAC,MAAK,QAAQ;IAChFc,cAAc,EAAdA,cAAc;IACdC,OAAO,EAAPA,OAAO;IACP/B,OAAO,EAAPA,OAAO;IACPqC,mBAAmB,EAAnBA,mBAAmB;IACnB4L,cAAc,EAAE3L,eAAe,CAAC2L,cAAc;IAC9CvL,WAAW,EAAEE,kBAAkB;IAC/BoH,UAAU,EAAVA,UAAU;IACVC,YAAY,EAAZA,YAAY;IACZnH,OAAO,EAAE,SAAAA,QAAC4K,OAAO,EAAK;MACpB,IAAMQ,WAAW,GAAG;QAClBb,cAAc,EAAdA,cAAc;QACdc,cAAc,EAAET,OAAO,CAACS,cAAc;QACtCR,cAAc,EAAED,OAAO,CAACC,cAAc,IAAI7K,QAAO;QACjD8K,OAAO,EAAEF,OAAO,CAACE,OAAO,IAAI,SAAS;QACrCC,KAAK,EAAEH,OAAO,CAACG,KAAK;QACpB7N,OAAO,EAAPA;MACF,CAAC;MAED,IAAMoO,aAAa,GAAG,SAAhBA,aAAaA,CAAA,EAAS;QAC1B,IAAIvL,WAAW,EAAE,OAAOA,WAAW,CAACqL,WAAW,CAAC;QAChD,IAAInL,kBAAkB,EAAE,OAAOA,kBAAkB,CAACmL,WAAW,CAAC;QAC9D,IAAIR,OAAO,CAACC,cAAc,EAAE,OAAOD,OAAO,CAACC,cAAc,CAAC,CAAC;QAE3D,OAAO7K,QAAO,CAAC,CAAC;MAClB,CAAC;MAEDsL,aAAa,CAAC,CAAC;IACjB,CAAC;IACDlL,SAAS,EACPD,aAAa,IAAIE,oBAAoB,GACjC,UAACuK,OAAO,EAAK;MACX,IAAMW,aAAa,GAAG;QACpBhB,cAAc,EAAdA,cAAc;QACdM,cAAc,EAAED,OAAO,CAACC,cAAc;QACtCC,OAAO,EAAEF,OAAO,CAACE,OAAO,IAAI,SAAS;QACrCC,KAAK,EAAEH,OAAO,CAACG,KAAK;QACpB7N,OAAO,EAAPA;MACF,CAAC;MACD,IAAMsO,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;QAC5B,IAAIrL,aAAa,EAAE,OAAOA,aAAa,CAACoL,aAAa,CAAC;QACtD,IAAIlL,oBAAoB,EAAE,OAAOA,oBAAoB,CAACkL,aAAa,CAAC;MACtE,CAAC;MACDC,eAAe,CAAC,CAAC;IACnB,CAAC,GACD,IAAI;IACVlB,gBAAgB,EAAE/E,WAAW,CAACQ,KAAK;IACnCrF,YAAY,EAAZA,YAAY;IACZ6G,SAAS,EAATA,SAAS;IACTpG,UAAU,EAAVA,UAAU;IACVkE,kBAAkB,EAAlBA,kBAAkB;IAClBjE,iBAAiB,EAAE,OAAOA,iBAAiB,KAAK,SAAS,GAAGA,iBAAiB,GAAG0B,WAAW;IAC3FnB,UAAU,EAAVA,UAAU;IACVuE,MAAM,EAAEX,WAAW,CAACW;EACtB,CAAC,CAAC;EAEF,IAAI,EAAEjJ,oBAAoB,IAAIsC,mBAAmB,CAACuF,MAAM,CAAC,EAAE,OAAO,IAAI;EAEtE,OACEpL,MAAA,YAAA+R,aAAA,CAAC5R,YAAA,CAAA6R,IAAI;IACHpK,KAAK,EAAE,CACLpE,OAAO,CAACyO,MAAM,QAAAvB,SAAA,iBACT5H,wBAAwB;MAC3BoJ,eAAe,EAAEvJ;IAAyB,EAC3C,CACD;IACFwJ,MAAM,EAAC,iBAAiB;IAAAC,MAAA,EAAA9Q,KAAA;IAAA+Q,QAAA;MAAAC,QAAA,EAAA/Q,YAAA;MAAAgR,UAAA;MAAAC,YAAA;IAAA;EAAA,GAExBxS,MAAA,YAAA+R,aAAA,CAAC5R,YAAA,CAAA6R,IAAI;IACHpK,KAAK,EAAE,CACLA,KAAK,EACL;MACEsK,eAAe,EAAEvK,kBAAkB,GAAGe,iBAAiB,GAAG2C;IAC5D,CAAC,CACD;IAAA+G,MAAA,EAAA9Q,KAAA;IAAA+Q,QAAA;MAAAC,QAAA,EAAA/Q,YAAA;MAAAgR,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEFxS,MAAA,YAAA+R,aAAA,CAAC5R,YAAA,CAAA6R,IAAI;IACHpK,KAAK,EAAE,CACLG,iBAAiB,OAAA2I,SAAA;MACXwB,eAAe,EAAEvJ;IAAyB,GAAKI,uBAAuB,IACxE,CAAC,CAAC,CACN;IAAAqJ,MAAA,EAAA9Q,KAAA;IAAA+Q,QAAA;MAAAC,QAAA,EAAA/Q,YAAA;MAAAgR,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEFxS,MAAA,YAAA+R,aAAA,CAACpR,eAAA,CAAA8R,eAAe;IAAC1I,KAAK,EAAE0G,cAAe;IAAA2B,MAAA,EAAA9Q,KAAA;IAAA+Q,QAAA;MAAAC,QAAA,EAAA/Q,YAAA;MAAAgR,UAAA;MAAAC,YAAA;IAAA;EAAA,GACrCxS,MAAA,YAAA+R,aAAA,CAAC/L,aAAa;IAAAoM,MAAA,EAAA9Q,KAAA;IAAA+Q,QAAA;MAAAC,QAAA,EAAA/Q,YAAA;MAAAgR,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAChBnP,kBAAkB,IAAIrD,MAAA,YAAA+R,aAAA,CAAChM,aAAa;IAACzC,qBAAqB,EAAEA,qBAAsB;IAAA8O,MAAA,EAAA9Q,KAAA;IAAA+Q,QAAA;MAAAC,QAAA,EAAA/Q,YAAA;MAAAgR,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACtE,CACb,CACF,CACF,CAAC;AAEX,CAAC;AAED,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAAsD,EACtDC,SAAsD,EACnD;EAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,iBAAA,EAAAC,iBAAA;EACH,IAC6BC,cAAc,GAYvCR,SAAS,CAZXtN,WAAW,CAAI+N,UAAU;IACfC,YAAY,GAWpBV,SAAS,CAXX7O,QAAQ;IACKwP,eAAe,GAU1BX,SAAS,CAVXrO,WAAW;IACEiP,eAAe,GAS1BZ,SAAS,CATXnO,WAAW;IACXgP,iBAAiB,GAQfb,SAAS,CARXa,iBAAiB;IACEC,qBAAqB,GAOtCd,SAAS,CAPX5K,iBAAiB;IACD2L,kBAAkB,GAMhCf,SAAS,CANXrN,cAAc;IACLqO,WAAW,GAKlBhB,SAAS,CALXpN,OAAO;IACEqO,WAAW,GAIlBjB,SAAS,CAJXnP,OAAO;IACUqQ,mBAAmB,GAGlClB,SAAS,CAHX7M,eAAe;IACKgO,sBAAsB,GAExCnB,SAAS,CAFXhL,kBAAkB;IACfoM,KAAK,GACNpB,SAAS,CADX7K,CAAC;EAEH,IAC6BkM,cAAc,GAWvCpB,SAAS,CAXXvN,WAAW,CAAI+N,UAAU;IACfa,YAAY,GAUpBrB,SAAS,CAVX9O,QAAQ;IACKoQ,eAAe,GAS1BtB,SAAS,CATXtO,WAAW;IACE6P,eAAe,GAQ1BvB,SAAS,CARXpO,WAAW;IACQ4P,qBAAqB,GAOtCxB,SAAS,CAPX7K,iBAAiB;IACDsM,kBAAkB,GAMhCzB,SAAS,CANXtN,cAAc;IACLgP,WAAW,GAKlB1B,SAAS,CALXrN,OAAO;IACEgP,WAAW,GAIlB3B,SAAS,CAJXpP,OAAO;IACUgR,mBAAmB,GAGlC5B,SAAS,CAHX9M,eAAe;IACK2O,sBAAsB,GAExC7B,SAAS,CAFXjL,kBAAkB;IACf+M,KAAK,GACN9B,SAAS,CADX9K,CAAC;EAGH,IAAM6M,aAAa,GAAGtB,YAAY,KAAKY,YAAY;EACnD,IAAI,CAACU,aAAa,EAAE,OAAO,KAAK;EAEhC,IAAMC,YAAY,GAAGvS,MAAM,CAACwS,IAAI,CAAClB,WAAW,CAAC,CAACvI,MAAM,KAAK/I,MAAM,CAACwS,IAAI,CAACP,WAAW,CAAC,CAAClJ,MAAM;EACxF,IAAI,CAACwJ,YAAY,EAAE,OAAO,KAAK;EAE/B,IAAME,YAAY,GAAGlB,WAAW,CAACmB,WAAW,KAAKR,WAAW,CAACQ,WAAW;EACxE,IAAI,CAACD,YAAY,EAAE,OAAO,KAAK;EAE/B,IAAME,+BAA+B,GACnCtB,kBAAkB,KAAKW,kBAAkB,KACxCX,kBAAkB,KAAKE,WAAW,CAACrK,EAAE,IACpCmK,kBAAkB,KAAKa,WAAW,CAAChL,EAAE,IACrC8K,kBAAkB,KAAKT,WAAW,CAACrK,EAAE,IACrC8K,kBAAkB,KAAKE,WAAW,CAAChL,EAAE,CAAC;EAE1C,IAAIyL,+BAA+B,EAAE,OAAO,KAAK;EAEjD,IAAMC,4BAA4B,GAChCV,WAAW,CAACW,iBAAiB,IAAI5B,eAAe,KAAKY,eAAe;EAEtE,IAAIe,4BAA4B,EAAE,OAAO,KAAK;EAE9C,IAAME,gBAAgB,GACpB5B,eAAe,CAACnI,MAAM,KAAK+I,eAAe,CAAC/I,MAAM,IAAImI,eAAe,CAAC,CAAC,CAAC,KAAKY,eAAe,CAAC,CAAC,CAAC;EAChG,IAAI,CAACgB,gBAAgB,EAAE,OAAO,KAAK;EAEnC,IAAMC,wBAAwB,GAAGxB,WAAW,CAACnQ,IAAI,KAAK,SAAS;EAC/D,IAAM4R,wBAAwB,GAAGd,WAAW,CAAC9Q,IAAI,KAAK,SAAS;EAE/D,IAAM6R,YAAY,GAChBF,wBAAwB,KAAKC,wBAAwB,IACrD,CAAC,IAAAE,yDAAyC,EAAC3B,WAAW,CAAC,IAAIA,WAAW,CAAC4B,MAAM,OAC1E,IAAAD,yDAAyC,EAAChB,WAAW,CAAC,IAAIA,WAAW,CAACiB,MAAM,CAAC,IAChF5B,WAAW,CAAC3K,MAAM,KAAKsL,WAAW,CAACtL,MAAM,IACzC2K,WAAW,CAACnQ,IAAI,KAAK8Q,WAAW,CAAC9Q,IAAI,IACrCmQ,WAAW,CAACxG,IAAI,KAAKmH,WAAW,CAACnH,IAAI,IACrCwG,WAAW,CAAC3B,MAAM,KAAKsC,WAAW,CAACtC,MAAM,IACzC,MAAG2B,WAAW,oBAAXA,WAAW,CAAE6B,UAAU,YAAUlB,WAAW,oBAAXA,WAAW,CAAEkB,UAAU,CAAE;EAE/D,IAAI,CAACH,YAAY,EAAE,OAAO,KAAK;EAE/B,IAAMI,8BAA8B,GAAG,EAAA7C,qBAAA,GAAAe,WAAW,CAACpI,cAAc,qBAA1BqH,qBAAA,CAA4BpP,IAAI,MAAK,SAAS;EACrF,IAAMkS,8BAA8B,GAAG,EAAA7C,qBAAA,GAAAyB,WAAW,CAAC/I,cAAc,qBAA1BsH,qBAAA,CAA4BrP,IAAI,MAAK,SAAS;EAErF,IAAMmS,kBAAkB,GACtB,EAAA7C,sBAAA,GAAAa,WAAW,CAACpI,cAAc,qBAA1BuH,sBAAA,CAA4BxJ,EAAE,QAAAyJ,sBAAA,GAAKuB,WAAW,CAAC/I,cAAc,qBAA1BwH,sBAAA,CAA4BzJ,EAAE,KACjEmM,8BAA8B,KAAKC,8BAA8B;EAEnE,IAAI,CAACC,kBAAkB,EAAE,OAAO,KAAK;EAErC,IAAMC,sBAAsB,GAAG,EAAA5C,iBAAA,GAAAW,WAAW,CAACtK,IAAI,qBAAhB2J,iBAAA,CAAkB6C,MAAM,QAAA5C,iBAAA,GAAKqB,WAAW,CAACjL,IAAI,qBAAhB4J,iBAAA,CAAkB4C,MAAM;EACpF,IAAI,CAACD,sBAAsB,EAAE,OAAO,KAAK;EAEzC,IAAME,sBAAsB,GAAGnC,WAAW,CAAC/H,WAAW;EACtD,IAAMmK,sBAAsB,GAAGzB,WAAW,CAAC1I,WAAW;EACtD,IAAMoK,gBAAgB,GACnBnK,KAAK,CAACC,OAAO,CAACgK,sBAAsB,CAAC,IACpCjK,KAAK,CAACC,OAAO,CAACiK,sBAAsB,CAAC,IACrCD,sBAAsB,CAAC3K,MAAM,KAAK4K,sBAAsB,CAAC5K,MAAM,IAC/D2K,sBAAsB,CAACG,KAAK,CAAC,UAAClJ,UAAU,EAAEmJ,KAAK,EAAK;IAClD,IAAMC,mBAAmB,GACvBpJ,UAAU,CAACvJ,IAAI,KAAK,OAAO,GACvBuJ,UAAU,CAACP,SAAS,KAAKuJ,sBAAsB,CAACG,KAAK,CAAC,CAAC1J,SAAS,IAChEO,UAAU,CAACL,SAAS,KAAKqJ,sBAAsB,CAACG,KAAK,CAAC,CAACxJ,SAAS,GAChEK,UAAU,CAACvJ,IAAI,KAAKuS,sBAAsB,CAACG,KAAK,CAAC,CAAC1S,IAAI;IAE5D,IAAI+P,iBAAiB,EACnB,OACE4C,mBAAmB,IAAI,CAAC,CAAC5C,iBAAiB,CAACxG,UAAU,EAAEgJ,sBAAsB,CAACG,KAAK,CAAC,CAAC;IAGzF,OAAOC,mBAAmB;EAC5B,CAAC,CAAC,IACJL,sBAAsB,KAAKC,sBAAsB;EACnD,IAAI,CAACC,gBAAgB,EAAE,OAAO,KAAK;EAEnC,IAAMI,oBAAoB,GACxBvK,KAAK,CAACC,OAAO,CAAC6H,WAAW,CAACjG,gBAAgB,CAAC,IAAI7B,KAAK,CAACC,OAAO,CAACwI,WAAW,CAAC5G,gBAAgB,CAAC,GACtFiG,WAAW,CAACjG,gBAAgB,CAACvC,MAAM,KAAKmJ,WAAW,CAAC5G,gBAAgB,CAACvC,MAAM,IAC3EwI,WAAW,CAACjG,gBAAgB,CAACuI,KAAK,CAChC,UAAAI,KAAA,EAAWH,KAAK;IAAA,IAAAI,qBAAA;IAAA,IAAb9S,IAAI,GAAA6S,KAAA,CAAJ7S,IAAI;IAAA,OAAcA,IAAI,OAAA8S,qBAAA,GAAKhC,WAAW,CAAC5G,gBAAgB,qBAA5B4I,qBAAA,CAA+BJ,KAAK,CAAC,CAAC1S,IAAI;EAAA,CAC1E,CAAC,GACDmQ,WAAW,CAACjG,gBAAgB,KAAK4G,WAAW,CAAC5G,gBAAgB;EACnE,IAAI,CAAC0I,oBAAoB,EAAE,OAAO,KAAK;EAEvC,IAAMG,aAAa,GACjBrD,cAAc,CAAC/H,MAAM,KAAK4I,cAAc,CAAC5I,MAAM,IAC/C+H,cAAc,CAACpG,IAAI,CAAC,UAAC0J,SAAS;IAAA,IAAAC,kBAAA;IAAA,OAAKD,SAAS,CAACE,MAAM,CAACpN,EAAE,OAAAmN,kBAAA,GAAK9C,WAAW,CAACtK,IAAI,qBAAhBoN,kBAAA,CAAkBnN,EAAE;EAAA,EAAC,KAC9EyK,cAAc,CAACjH,IAAI,CAAC,UAAC0J,SAAS;IAAA,IAAAG,kBAAA;IAAA,OAAKH,SAAS,CAACE,MAAM,CAACpN,EAAE,OAAAqN,kBAAA,GAAKrC,WAAW,CAACjL,IAAI,qBAAhBsN,kBAAA,CAAkBrN,EAAE;EAAA,EAAC;EACpF,IAAI,CAACiN,aAAa,EAAE,OAAO,KAAK;EAEhC,IAAMK,uBAAuB,GAAG/C,sBAAsB,KAAKW,sBAAsB;EACjF,IAAI,CAACoC,uBAAuB,EAAE,OAAO,KAAK;EAE1C,IAAMC,MAAM,GAAG/C,KAAK,KAAKW,KAAK;EAC9B,IAAI,CAACoC,MAAM,EAAE,OAAO,KAAK;EAEzB,IAAMC,oBAAoB,GAAGtD,qBAAqB,KAAKW,qBAAqB;EAC5E,IAAI,CAAC2C,oBAAoB,EAAE,OAAO,KAAK;EAEvC,IAAMC,kBAAkB,GAAGC,IAAI,CAACC,SAAS,CAACrD,mBAAmB,oBAAnBA,mBAAmB,CAAEpC,cAAc,CAAC;EAC9E,IAAM0F,kBAAkB,GAAGF,IAAI,CAACC,SAAS,CAAC1C,mBAAmB,oBAAnBA,mBAAmB,CAAE/C,cAAc,CAAC;EAE9E,IAAM2F,iBAAiB,GAAGJ,kBAAkB,KAAKG,kBAAkB;EACnE,IAAI,CAACC,iBAAiB,EAAE,OAAO,KAAK;EAEpC,OAAO,IAAI;AACb,CAAC;AAED,IAAMC,eAAe,GAAGC,iBAAK,CAACC,IAAI,CAACzU,kBAAkB,EAAE4P,QAAQ,CAA8B;AAatF,IAAM8E,OAAO,GAAG,SAAVA,OAAOA,CAGlBzU,KAAuC,EACpC;EACH,IAAA0U,kBAAA,GACE,IAAAC,iCAAiB,EAAqB,CAAC;IADjC/T,OAAO,GAAA8T,kBAAA,CAAP9T,OAAO;IAAEG,QAAQ,GAAA2T,kBAAA,CAAR3T,QAAQ;IAAEK,qBAAqB,GAAAsT,kBAAA,CAArBtT,qBAAqB;IAAEoB,OAAO,GAAAkS,kBAAA,CAAPlS,OAAO;EAEzD,IAAMF,WAAW,GAAG,IAAAsS,2BAAc,EAAqB,CAAC;EACxD,IAAAC,mBAAA,GAA4B,IAAAC,mCAAkB,EAAC,CAAC;IAAxC9T,eAAe,GAAA6T,mBAAA,CAAf7T,eAAe;EACvB,IAAA+T,qBAAA,GAAoB,IAAAC,+CAAwB,EAAqB,CAAC;IAA1D1Q,OAAO,GAAAyQ,qBAAA,CAAPzQ,OAAO;EACf,IAAMvB,eAAe,GAAG,IAAAkS,mCAAkB,EAAqB,CAAC;EAChE,IAAAC,kBAAA,GAAuB,IAAAC,iCAAiB,EAAC,CAAC;IAAlC3Q,UAAU,GAAA0Q,kBAAA,CAAV1Q,UAAU;EAClB,IAAA4Q,iBAAA,GAAuB,IAAAC,+BAAgB,EAAqB,CAAC;IAArDtR,UAAU,GAAAqR,iBAAA,CAAVrR,UAAU;EAClB,IAAAuR,sBAAA,GAAc,IAAAvI,yCAAqB,EAAC,CAAC;IAA7BhI,CAAC,GAAAuQ,sBAAA,CAADvQ,CAAC;EAET,OACE9H,MAAA,YAAA+R,aAAA,CAACsF,eAAe,MAAA3G,SAAA,iBACV5K,eAAe;IAEjBnC,OAAO,EAAPA,OAAO;IACP0B,WAAW,EAAXA,WAAW;IACXvB,QAAQ,EAARA,QAAQ;IACRC,eAAe,EAAfA,eAAe;IACfI,qBAAqB,EAArBA,qBAAqB;IACrBoB,OAAO,EAAPA,OAAO;IACPO,eAAe,EAAfA,eAAe;IACfgB,UAAU,EAAVA,UAAU;IACVO,OAAO,EAAPA,OAAO;IACPE,UAAU,EAAVA,UAAU;IACVO,CAAC,EAADA;EAAC,GAEC/E,KAAK;IAAAqP,MAAA,EAAA9Q,KAAA;IAAA+Q,QAAA;MAAAC,QAAA,EAAA/Q,YAAA;MAAAgR,UAAA;MAAAC,YAAA;IAAA;EAAA,EACV,CAAC;AAEN,CAAC;AAAC8F,OAAA,CAAAd,OAAA,GAAAA,OAAA"}
|
|
@@ -386,7 +386,8 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
|
|
|
386
386
|
};
|
|
387
387
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
388
388
|
var _prevOtherAttachments, _prevOtherAttachments2, _nextOtherAttachments, _nextOtherAttachments2, _prevMessage$quoted_m, _nextMessage$quoted_m, _prevMessage$quoted_m2, _nextMessage$quoted_m2;
|
|
389
|
-
var
|
|
389
|
+
var prevDisabled = prevProps.disabled,
|
|
390
|
+
prevGoToMessage = prevProps.goToMessage,
|
|
390
391
|
prevGroupStyles = prevProps.groupStyles,
|
|
391
392
|
prevHasReactions = prevProps.hasReactions,
|
|
392
393
|
isAttachmentEqual = prevProps.isAttachmentEqual,
|
|
@@ -399,7 +400,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
399
400
|
prevOtherAttachments = prevProps.otherAttachments,
|
|
400
401
|
prevT = prevProps.t,
|
|
401
402
|
prevTDateTimeParser = prevProps.tDateTimeParser;
|
|
402
|
-
var
|
|
403
|
+
var nextDisabled = nextProps.disabled,
|
|
404
|
+
nextGoToMessage = nextProps.goToMessage,
|
|
403
405
|
nextGroupStyles = nextProps.groupStyles,
|
|
404
406
|
nextHasReactions = nextProps.hasReactions,
|
|
405
407
|
nextLastGroupMessage = nextProps.lastGroupMessage,
|
|
@@ -411,6 +413,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
411
413
|
nextOtherAttachments = nextProps.otherAttachments,
|
|
412
414
|
nextT = nextProps.t,
|
|
413
415
|
nextTDateTimeParser = nextProps.tDateTimeParser;
|
|
416
|
+
var disabledEqual = prevDisabled === nextDisabled;
|
|
417
|
+
if (!disabledEqual) return false;
|
|
414
418
|
var hasReactionsEqual = prevHasReactions === nextHasReactions;
|
|
415
419
|
if (!hasReactionsEqual) return false;
|
|
416
420
|
var lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;
|
|
@@ -539,7 +543,7 @@ var MessageContent = function MessageContent(props) {
|
|
|
539
543
|
__self: _this,
|
|
540
544
|
__source: {
|
|
541
545
|
fileName: _jsxFileName,
|
|
542
|
-
lineNumber:
|
|
546
|
+
lineNumber: 601,
|
|
543
547
|
columnNumber: 5
|
|
544
548
|
}
|
|
545
549
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_MessageTextContainer","_MessageContext","_MessagesContext","_ThemeContext","_TranslationContext","_useViewport2","_utils","_excluded","_this","_jsxFileName","styles","StyleSheet","create","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","leftAlignContent","justifyContent","leftAlignItems","alignItems","replyBorder","borderLeftWidth","bottom","position","replyContainer","flexDirection","paddingHorizontal","paddingTop","rightAlignContent","rightAlignItems","MessageContentWithContext","props","_groupStyles$","additionalTouchableProps","alignment","Attachment","disabled","FileAttachmentGroup","formatDate","Gallery","groupStyles","hasReactions","isMyMessage","lastGroupMessage","members","message","messageContentOrder","MessageDeleted","MessageError","MessageFooter","MessageHeader","MessageReplies","MessageStatus","onLongPress","onlyEmojis","onPress","onPressIn","otherAttachments","preventPress","Reply","setMessageContentWidth","showMessageStatus","tDateTimeParser","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white","_useTheme$theme$messa","messageSimple","_useTheme$theme$messa2","content","_useTheme$theme$messa3","container","borderBottomLeftRadius","borderBottomRightRadius","borderRadius","borderRadiusL","borderRadiusS","_objectWithoutProperties2","errorContainer","wrapper","_useTheme$theme$messa4","reactionList","radius","reactionSize","_useViewport","useViewport","vw","getDateText","formatter","created_at","parserOutput","isDayOrMoment","format","onLayout","_ref","width","nativeEvent","layout","error","type","status","MessageStatusTypes","FAILED","groupStyle","toLowerCase","hasThreadReplies","reply_count","noBorder","quoted_message","length","isMessageTypeDeleted","createElement","formattedDate","__self","__source","fileName","lineNumber","columnNumber","backgroundColor","repliesCurveColor","isBorderColor","getBorderRadius","groupPosition","isBottomOrSingle","getBorderRadiusFromTheme","bordersFromTheme","key","undefined","TouchableOpacity","_extends2","activeOpacity","event","emitter","testID","style","isDeleted","View","borderColor","height","left","right","map","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","id","messageId","actions","MessageTextContainer","areEqual","prevProps","nextProps","_prevOtherAttachments","_prevOtherAttachments2","_nextOtherAttachments","_nextOtherAttachments2","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","prevGoToMessage","goToMessage","prevGroupStyles","prevHasReactions","isAttachmentEqual","prevLastGroupMessage","prevMembers","prevMessage","prevMessageContentOrder","prevMyMessageTheme","myMessageTheme","prevOnlyEmojis","prevOtherAttachments","prevT","t","prevTDateTimeParser","nextGoToMessage","nextGroupStyles","nextHasReactions","nextLastGroupMessage","nextMembers","nextMessage","nextMessageContentOrder","nextMyMessageTheme","nextOnlyEmojis","nextOtherAttachments","nextT","nextTDateTimeParser","hasReactionsEqual","lastGroupMessageEqual","goToMessageChangedAndMatters","quoted_message_id","onlyEmojisEqual","otherAttachmentsEqual","membersEqual","Object","keys","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","text","pinned","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","prevMessageAttachments","attachments","nextMessageAttachments","attachmentsEqual","Array","isArray","every","index","attachmentKeysEqual","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","_ref2","_nextMessage$latest_r","messageContentOrderEqual","tEqual","tDateTimeParserEqual","messageThemeEqual","JSON","stringify","MemoizedMessageContent","React","memo","MessageContent","_useMessageContext","useMessageContext","lastReceivedId","_useMessagesContext","useMessagesContext","_useTranslationContex","useTranslationContext","exports","displayName"],"sources":["MessageContent.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { MessageTextContainer } from './MessageTextContainer';\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';\nimport {\n isDayOrMoment,\n TDateTimeParserInput,\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport { useViewport } from '../../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { MessageStatusTypes } from '../../../utils/utils';\n\nconst styles = StyleSheet.create({\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n leftAlignContent: {\n justifyContent: 'flex-start',\n },\n leftAlignItems: {\n alignItems: 'flex-start',\n },\n replyBorder: {\n borderLeftWidth: 1,\n bottom: 0,\n position: 'absolute',\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n rightAlignContent: {\n justifyContent: 'flex-end',\n },\n rightAlignItems: {\n alignItems: 'flex-end',\n },\n});\n\nexport type MessageContentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'disabled'\n | 'goToMessage'\n | 'groupStyles'\n | 'hasReactions'\n | 'isMyMessage'\n | 'lastGroupMessage'\n | 'members'\n | 'message'\n | 'messageContentOrder'\n | 'onLongPress'\n | 'onlyEmojis'\n | 'onPress'\n | 'onPressIn'\n | 'otherAttachments'\n | 'preventPress'\n | 'showMessageStatus'\n | 'threadList'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'Attachment'\n | 'FileAttachmentGroup'\n | 'formatDate'\n | 'Gallery'\n | 'isAttachmentEqual'\n | 'MessageFooter'\n | 'MessageHeader'\n | 'MessageDeleted'\n | 'MessageError'\n | 'MessageReplies'\n | 'MessageStatus'\n | 'myMessageTheme'\n | 'onPressInMessage'\n | 'Reply'\n > &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n setMessageContentWidth: React.Dispatch<React.SetStateAction<number>>;\n };\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nconst MessageContentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageContentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageError,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n Reply,\n setMessageContentWidth,\n showMessageStatus,\n tDateTimeParser,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { blue_alice, grey_gainsboro, grey_whisper, transparent, white },\n messageSimple: {\n content: {\n container: {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderRadius,\n borderRadiusL,\n borderRadiusS,\n borderTopLeftRadius,\n borderTopRightRadius,\n ...container\n },\n containerInner,\n errorContainer,\n replyBorder,\n replyContainer,\n wrapper,\n },\n reactionList: { radius, reactionSize },\n },\n },\n } = useTheme();\n const { vw } = useViewport();\n\n const getDateText = (formatter?: (date: TDateTimeParserInput) => string) => {\n if (!message.created_at) return '';\n\n if (formatter) {\n return formatter(message.created_at);\n }\n\n const parserOutput = tDateTimeParser(message.created_at);\n\n if (isDayOrMoment(parserOutput)) {\n return parserOutput.format('LT');\n }\n return message.created_at;\n };\n\n const onLayout: (event: LayoutChangeEvent) => void = ({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setMessageContentWidth(width);\n };\n\n const error = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n let noBorder = onlyEmojis && !message.quoted_message;\n if (otherAttachments.length) {\n if (otherAttachments[0].type === 'giphy' && !isMyMessage) {\n noBorder = false;\n } else {\n noBorder = true;\n }\n }\n\n const isMessageTypeDeleted = message.type === 'deleted';\n\n if (isMessageTypeDeleted) {\n return (\n <MessageDeleted\n formattedDate={getDateText(formatDate)}\n groupStyle={groupStyle}\n noBorder={noBorder}\n onLayout={onLayout}\n />\n );\n }\n\n let backgroundColor = grey_gainsboro;\n if (onlyEmojis && !message.quoted_message) {\n backgroundColor = transparent;\n } else if (otherAttachments.length) {\n if (otherAttachments[0].type === 'giphy') {\n backgroundColor = message.quoted_message ? grey_gainsboro : transparent;\n } else {\n backgroundColor = blue_alice;\n }\n } else if (alignment === 'left' || error) {\n backgroundColor = white;\n }\n\n const repliesCurveColor = isMyMessage && !error ? backgroundColor : grey_whisper;\n\n const isBorderColor = isMyMessage && !error;\n\n const getBorderRadius = () => {\n // enum('top', 'middle', 'bottom', 'single')\n const groupPosition = groupStyles?.[0];\n\n const isBottomOrSingle = groupPosition === 'single' || groupPosition === 'bottom';\n let borderBottomLeftRadius = borderRadiusL;\n let borderBottomRightRadius = borderRadiusL;\n\n if (isBottomOrSingle && (!hasThreadReplies || threadList)) {\n // add relevant sharp corner\n if (alignment === 'left') {\n borderBottomLeftRadius = borderRadiusS;\n } else {\n borderBottomRightRadius = borderRadiusS;\n }\n }\n\n return {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n };\n };\n\n const getBorderRadiusFromTheme = () => {\n const bordersFromTheme: Record<string, number | undefined> = {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n };\n\n // filter out undefined values\n for (const key in bordersFromTheme) {\n if (bordersFromTheme[key] === undefined) {\n delete bordersFromTheme[key];\n }\n }\n\n return bordersFromTheme;\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={disabled || preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n testID='message-content'\n {...additionalTouchableProps}\n /**\n * Border radii are useful for the case of error message types only.\n * Otherwise background is transparent, so border radius is not really visible.\n */\n style={[\n alignment === 'left' ? styles.leftAlignItems : styles.rightAlignItems,\n { paddingTop: hasReactions ? reactionSize / 2 + radius : 2 },\n error ? errorContainer : {},\n container,\n ]}\n >\n {MessageHeader && (\n <MessageHeader\n alignment={alignment}\n formattedDate={getDateText(formatDate)}\n isDeleted={!!isMessageTypeDeleted}\n lastGroupMessage={lastGroupMessage}\n members={members}\n message={message}\n MessageStatus={MessageStatus}\n otherAttachments={otherAttachments}\n showMessageStatus={showMessageStatus}\n />\n )}\n <View onLayout={onLayout} style={wrapper}>\n {hasThreadReplies && !threadList && !noBorder && (\n <View\n style={[\n styles.replyBorder,\n {\n borderColor: repliesCurveColor,\n height: borderRadiusL,\n left: alignment === 'left' ? 0 : undefined,\n right: alignment === 'right' ? 0 : undefined,\n },\n replyBorder,\n ]}\n />\n )}\n <View\n style={[\n styles.containerInner,\n {\n backgroundColor,\n borderColor: isBorderColor ? backgroundColor : grey_whisper,\n ...getBorderRadius(),\n ...getBorderRadiusFromTheme(),\n },\n noBorder ? { borderWidth: 0 } : {},\n containerInner,\n ]}\n testID='message-content-wrapper'\n >\n {messageContentOrder.map((messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply styles={{ messageContainer: { maxWidth: vw(60) } }} />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments.map((attachment, attachmentIndex) => (\n <Attachment attachment={attachment} key={`${message.id}-${attachmentIndex}`} />\n ));\n case 'files':\n return (\n <FileAttachmentGroup\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n );\n case 'gallery':\n return <Gallery key={`gallery_${messageContentOrderIndex}`} />;\n case 'text':\n default:\n return otherAttachments.length && otherAttachments[0].actions ? null : (\n <MessageTextContainer<StreamChatGenerics>\n key={`message_text_container_${messageContentOrderIndex}`}\n />\n );\n }\n })}\n </View>\n {error && <MessageError />}\n </View>\n <MessageReplies noBorder={noBorder} repliesCurveColor={repliesCurveColor} />\n <MessageFooter formattedDate={getDateText(formatDate)} isDeleted={!!isMessageTypeDeleted} />\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageContentPropsWithContext<StreamChatGenerics>,\n nextProps: MessageContentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n isAttachmentEqual,\n lastGroupMessage: prevLastGroupMessage,\n members: prevMembers,\n message: prevMessage,\n messageContentOrder: prevMessageContentOrder,\n myMessageTheme: prevMyMessageTheme,\n onlyEmojis: prevOnlyEmojis,\n otherAttachments: prevOtherAttachments,\n t: prevT,\n tDateTimeParser: prevTDateTimeParser,\n } = prevProps;\n const {\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n lastGroupMessage: nextLastGroupMessage,\n members: nextMembers,\n message: nextMessage,\n messageContentOrder: nextMessageContentOrder,\n myMessageTheme: nextMyMessageTheme,\n onlyEmojis: nextOnlyEmojis,\n otherAttachments: nextOtherAttachments,\n t: nextT,\n tDateTimeParser: nextTDateTimeParser,\n } = nextProps;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;\n if (!lastGroupMessageEqual) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n if (goToMessageChangedAndMatters) return false;\n\n const onlyEmojisEqual = prevOnlyEmojis === nextOnlyEmojis;\n if (!onlyEmojisEqual) return false;\n\n const otherAttachmentsEqual =\n prevOtherAttachments.length === nextOtherAttachments.length &&\n prevOtherAttachments?.[0]?.actions?.length === nextOtherAttachments?.[0]?.actions?.length;\n if (!otherAttachmentsEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length &&\n 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 prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned;\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 if (!quotedMessageEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevMessageAttachments) && Array.isArray(nextMessageAttachments)\n ? prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.og_scrape_url === nextMessageAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url;\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 messageContentOrderEqual =\n prevMessageContentOrder.length === nextMessageContentOrder.length &&\n prevMessageContentOrder.every(\n (messageContentType, index) => messageContentType === nextMessageContentOrder[index],\n );\n if (!messageContentOrderEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const tDateTimeParserEqual = prevTDateTimeParser === nextTDateTimeParser;\n if (!tDateTimeParserEqual) return false;\n\n const messageThemeEqual =\n JSON.stringify(prevMyMessageTheme) === JSON.stringify(nextMyMessageTheme);\n if (!messageThemeEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageContent = React.memo(\n MessageContentWithContext,\n areEqual,\n) as typeof MessageContentWithContext;\n\nexport type MessageContentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessageContentPropsWithContext<StreamChatGenerics>, 'setMessageContentWidth'>> &\n Pick<MessageContentPropsWithContext<StreamChatGenerics>, 'setMessageContentWidth'>;\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nexport const MessageContent = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageContentProps<StreamChatGenerics>,\n) => {\n const {\n alignment,\n disabled,\n goToMessage,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n showMessageStatus,\n threadList,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n Attachment,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n isAttachmentEqual,\n MessageDeleted,\n MessageError,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n myMessageTheme,\n Reply,\n } = useMessagesContext<StreamChatGenerics>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MemoizedMessageContent<StreamChatGenerics>\n {...{\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n goToMessage,\n groupStyles,\n hasReactions,\n isAttachmentEqual,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageError,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n myMessageTheme,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n Reply,\n showMessageStatus,\n t,\n tDateTimeParser,\n threadList,\n }}\n {...props}\n />\n );\n};\n\nMessageContent.displayName = 'MessageContent{messageSimple{content}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_MessageTextContainer","_MessageContext","_MessagesContext","_ThemeContext","_TranslationContext","_useViewport2","_utils","_excluded","_this","_jsxFileName","styles","StyleSheet","create","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","leftAlignContent","justifyContent","leftAlignItems","alignItems","replyBorder","borderLeftWidth","bottom","position","replyContainer","flexDirection","paddingHorizontal","paddingTop","rightAlignContent","rightAlignItems","MessageContentWithContext","props","_groupStyles$","additionalTouchableProps","alignment","Attachment","disabled","FileAttachmentGroup","formatDate","Gallery","groupStyles","hasReactions","isMyMessage","lastGroupMessage","members","message","messageContentOrder","MessageDeleted","MessageError","MessageFooter","MessageHeader","MessageReplies","MessageStatus","onLongPress","onlyEmojis","onPress","onPressIn","otherAttachments","preventPress","Reply","setMessageContentWidth","showMessageStatus","tDateTimeParser","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white","_useTheme$theme$messa","messageSimple","_useTheme$theme$messa2","content","_useTheme$theme$messa3","container","borderBottomLeftRadius","borderBottomRightRadius","borderRadius","borderRadiusL","borderRadiusS","_objectWithoutProperties2","errorContainer","wrapper","_useTheme$theme$messa4","reactionList","radius","reactionSize","_useViewport","useViewport","vw","getDateText","formatter","created_at","parserOutput","isDayOrMoment","format","onLayout","_ref","width","nativeEvent","layout","error","type","status","MessageStatusTypes","FAILED","groupStyle","toLowerCase","hasThreadReplies","reply_count","noBorder","quoted_message","length","isMessageTypeDeleted","createElement","formattedDate","__self","__source","fileName","lineNumber","columnNumber","backgroundColor","repliesCurveColor","isBorderColor","getBorderRadius","groupPosition","isBottomOrSingle","getBorderRadiusFromTheme","bordersFromTheme","key","undefined","TouchableOpacity","_extends2","activeOpacity","event","emitter","testID","style","isDeleted","View","borderColor","height","left","right","map","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","id","messageId","actions","MessageTextContainer","areEqual","prevProps","nextProps","_prevOtherAttachments","_prevOtherAttachments2","_nextOtherAttachments","_nextOtherAttachments2","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","prevDisabled","prevGoToMessage","goToMessage","prevGroupStyles","prevHasReactions","isAttachmentEqual","prevLastGroupMessage","prevMembers","prevMessage","prevMessageContentOrder","prevMyMessageTheme","myMessageTheme","prevOnlyEmojis","prevOtherAttachments","prevT","t","prevTDateTimeParser","nextDisabled","nextGoToMessage","nextGroupStyles","nextHasReactions","nextLastGroupMessage","nextMembers","nextMessage","nextMessageContentOrder","nextMyMessageTheme","nextOnlyEmojis","nextOtherAttachments","nextT","nextTDateTimeParser","disabledEqual","hasReactionsEqual","lastGroupMessageEqual","goToMessageChangedAndMatters","quoted_message_id","onlyEmojisEqual","otherAttachmentsEqual","membersEqual","Object","keys","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","text","pinned","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","prevMessageAttachments","attachments","nextMessageAttachments","attachmentsEqual","Array","isArray","every","index","attachmentKeysEqual","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","_ref2","_nextMessage$latest_r","messageContentOrderEqual","tEqual","tDateTimeParserEqual","messageThemeEqual","JSON","stringify","MemoizedMessageContent","React","memo","MessageContent","_useMessageContext","useMessageContext","lastReceivedId","_useMessagesContext","useMessagesContext","_useTranslationContex","useTranslationContext","exports","displayName"],"sources":["MessageContent.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { MessageTextContainer } from './MessageTextContainer';\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';\nimport {\n isDayOrMoment,\n TDateTimeParserInput,\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport { useViewport } from '../../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { MessageStatusTypes } from '../../../utils/utils';\n\nconst styles = StyleSheet.create({\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n leftAlignContent: {\n justifyContent: 'flex-start',\n },\n leftAlignItems: {\n alignItems: 'flex-start',\n },\n replyBorder: {\n borderLeftWidth: 1,\n bottom: 0,\n position: 'absolute',\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n rightAlignContent: {\n justifyContent: 'flex-end',\n },\n rightAlignItems: {\n alignItems: 'flex-end',\n },\n});\n\nexport type MessageContentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'disabled'\n | 'goToMessage'\n | 'groupStyles'\n | 'hasReactions'\n | 'isMyMessage'\n | 'lastGroupMessage'\n | 'members'\n | 'message'\n | 'messageContentOrder'\n | 'onLongPress'\n | 'onlyEmojis'\n | 'onPress'\n | 'onPressIn'\n | 'otherAttachments'\n | 'preventPress'\n | 'showMessageStatus'\n | 'threadList'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'Attachment'\n | 'FileAttachmentGroup'\n | 'formatDate'\n | 'Gallery'\n | 'isAttachmentEqual'\n | 'MessageFooter'\n | 'MessageHeader'\n | 'MessageDeleted'\n | 'MessageError'\n | 'MessageReplies'\n | 'MessageStatus'\n | 'myMessageTheme'\n | 'onPressInMessage'\n | 'Reply'\n > &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n setMessageContentWidth: React.Dispatch<React.SetStateAction<number>>;\n };\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nconst MessageContentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageContentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageError,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n Reply,\n setMessageContentWidth,\n showMessageStatus,\n tDateTimeParser,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { blue_alice, grey_gainsboro, grey_whisper, transparent, white },\n messageSimple: {\n content: {\n container: {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderRadius,\n borderRadiusL,\n borderRadiusS,\n borderTopLeftRadius,\n borderTopRightRadius,\n ...container\n },\n containerInner,\n errorContainer,\n replyBorder,\n replyContainer,\n wrapper,\n },\n reactionList: { radius, reactionSize },\n },\n },\n } = useTheme();\n const { vw } = useViewport();\n\n const getDateText = (formatter?: (date: TDateTimeParserInput) => string) => {\n if (!message.created_at) return '';\n\n if (formatter) {\n return formatter(message.created_at);\n }\n\n const parserOutput = tDateTimeParser(message.created_at);\n\n if (isDayOrMoment(parserOutput)) {\n return parserOutput.format('LT');\n }\n return message.created_at;\n };\n\n const onLayout: (event: LayoutChangeEvent) => void = ({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setMessageContentWidth(width);\n };\n\n const error = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n let noBorder = onlyEmojis && !message.quoted_message;\n if (otherAttachments.length) {\n if (otherAttachments[0].type === 'giphy' && !isMyMessage) {\n noBorder = false;\n } else {\n noBorder = true;\n }\n }\n\n const isMessageTypeDeleted = message.type === 'deleted';\n\n if (isMessageTypeDeleted) {\n return (\n <MessageDeleted\n formattedDate={getDateText(formatDate)}\n groupStyle={groupStyle}\n noBorder={noBorder}\n onLayout={onLayout}\n />\n );\n }\n\n let backgroundColor = grey_gainsboro;\n if (onlyEmojis && !message.quoted_message) {\n backgroundColor = transparent;\n } else if (otherAttachments.length) {\n if (otherAttachments[0].type === 'giphy') {\n backgroundColor = message.quoted_message ? grey_gainsboro : transparent;\n } else {\n backgroundColor = blue_alice;\n }\n } else if (alignment === 'left' || error) {\n backgroundColor = white;\n }\n\n const repliesCurveColor = isMyMessage && !error ? backgroundColor : grey_whisper;\n\n const isBorderColor = isMyMessage && !error;\n\n const getBorderRadius = () => {\n // enum('top', 'middle', 'bottom', 'single')\n const groupPosition = groupStyles?.[0];\n\n const isBottomOrSingle = groupPosition === 'single' || groupPosition === 'bottom';\n let borderBottomLeftRadius = borderRadiusL;\n let borderBottomRightRadius = borderRadiusL;\n\n if (isBottomOrSingle && (!hasThreadReplies || threadList)) {\n // add relevant sharp corner\n if (alignment === 'left') {\n borderBottomLeftRadius = borderRadiusS;\n } else {\n borderBottomRightRadius = borderRadiusS;\n }\n }\n\n return {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n };\n };\n\n const getBorderRadiusFromTheme = () => {\n const bordersFromTheme: Record<string, number | undefined> = {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n };\n\n // filter out undefined values\n for (const key in bordersFromTheme) {\n if (bordersFromTheme[key] === undefined) {\n delete bordersFromTheme[key];\n }\n }\n\n return bordersFromTheme;\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={disabled || preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n testID='message-content'\n {...additionalTouchableProps}\n /**\n * Border radii are useful for the case of error message types only.\n * Otherwise background is transparent, so border radius is not really visible.\n */\n style={[\n alignment === 'left' ? styles.leftAlignItems : styles.rightAlignItems,\n { paddingTop: hasReactions ? reactionSize / 2 + radius : 2 },\n error ? errorContainer : {},\n container,\n ]}\n >\n {MessageHeader && (\n <MessageHeader\n alignment={alignment}\n formattedDate={getDateText(formatDate)}\n isDeleted={!!isMessageTypeDeleted}\n lastGroupMessage={lastGroupMessage}\n members={members}\n message={message}\n MessageStatus={MessageStatus}\n otherAttachments={otherAttachments}\n showMessageStatus={showMessageStatus}\n />\n )}\n <View onLayout={onLayout} style={wrapper}>\n {hasThreadReplies && !threadList && !noBorder && (\n <View\n style={[\n styles.replyBorder,\n {\n borderColor: repliesCurveColor,\n height: borderRadiusL,\n left: alignment === 'left' ? 0 : undefined,\n right: alignment === 'right' ? 0 : undefined,\n },\n replyBorder,\n ]}\n />\n )}\n <View\n style={[\n styles.containerInner,\n {\n backgroundColor,\n borderColor: isBorderColor ? backgroundColor : grey_whisper,\n ...getBorderRadius(),\n ...getBorderRadiusFromTheme(),\n },\n noBorder ? { borderWidth: 0 } : {},\n containerInner,\n ]}\n testID='message-content-wrapper'\n >\n {messageContentOrder.map((messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply styles={{ messageContainer: { maxWidth: vw(60) } }} />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments.map((attachment, attachmentIndex) => (\n <Attachment attachment={attachment} key={`${message.id}-${attachmentIndex}`} />\n ));\n case 'files':\n return (\n <FileAttachmentGroup\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n );\n case 'gallery':\n return <Gallery key={`gallery_${messageContentOrderIndex}`} />;\n case 'text':\n default:\n return otherAttachments.length && otherAttachments[0].actions ? null : (\n <MessageTextContainer<StreamChatGenerics>\n key={`message_text_container_${messageContentOrderIndex}`}\n />\n );\n }\n })}\n </View>\n {error && <MessageError />}\n </View>\n <MessageReplies noBorder={noBorder} repliesCurveColor={repliesCurveColor} />\n <MessageFooter formattedDate={getDateText(formatDate)} isDeleted={!!isMessageTypeDeleted} />\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageContentPropsWithContext<StreamChatGenerics>,\n nextProps: MessageContentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n disabled: prevDisabled,\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n isAttachmentEqual,\n lastGroupMessage: prevLastGroupMessage,\n members: prevMembers,\n message: prevMessage,\n messageContentOrder: prevMessageContentOrder,\n myMessageTheme: prevMyMessageTheme,\n onlyEmojis: prevOnlyEmojis,\n otherAttachments: prevOtherAttachments,\n t: prevT,\n tDateTimeParser: prevTDateTimeParser,\n } = prevProps;\n const {\n disabled: nextDisabled,\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n lastGroupMessage: nextLastGroupMessage,\n members: nextMembers,\n message: nextMessage,\n messageContentOrder: nextMessageContentOrder,\n myMessageTheme: nextMyMessageTheme,\n onlyEmojis: nextOnlyEmojis,\n otherAttachments: nextOtherAttachments,\n t: nextT,\n tDateTimeParser: nextTDateTimeParser,\n } = nextProps;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;\n if (!lastGroupMessageEqual) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n if (goToMessageChangedAndMatters) return false;\n\n const onlyEmojisEqual = prevOnlyEmojis === nextOnlyEmojis;\n if (!onlyEmojisEqual) return false;\n\n const otherAttachmentsEqual =\n prevOtherAttachments.length === nextOtherAttachments.length &&\n prevOtherAttachments?.[0]?.actions?.length === nextOtherAttachments?.[0]?.actions?.length;\n if (!otherAttachmentsEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length &&\n 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 prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned;\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 if (!quotedMessageEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevMessageAttachments) && Array.isArray(nextMessageAttachments)\n ? prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.og_scrape_url === nextMessageAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url;\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 messageContentOrderEqual =\n prevMessageContentOrder.length === nextMessageContentOrder.length &&\n prevMessageContentOrder.every(\n (messageContentType, index) => messageContentType === nextMessageContentOrder[index],\n );\n if (!messageContentOrderEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const tDateTimeParserEqual = prevTDateTimeParser === nextTDateTimeParser;\n if (!tDateTimeParserEqual) return false;\n\n const messageThemeEqual =\n JSON.stringify(prevMyMessageTheme) === JSON.stringify(nextMyMessageTheme);\n if (!messageThemeEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageContent = React.memo(\n MessageContentWithContext,\n areEqual,\n) as typeof MessageContentWithContext;\n\nexport type MessageContentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessageContentPropsWithContext<StreamChatGenerics>, 'setMessageContentWidth'>> &\n Pick<MessageContentPropsWithContext<StreamChatGenerics>, 'setMessageContentWidth'>;\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nexport const MessageContent = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageContentProps<StreamChatGenerics>,\n) => {\n const {\n alignment,\n disabled,\n goToMessage,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n showMessageStatus,\n threadList,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n Attachment,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n isAttachmentEqual,\n MessageDeleted,\n MessageError,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n myMessageTheme,\n Reply,\n } = useMessagesContext<StreamChatGenerics>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MemoizedMessageContent<StreamChatGenerics>\n {...{\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n goToMessage,\n groupStyles,\n hasReactions,\n isAttachmentEqual,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageError,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n myMessageTheme,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n Reply,\n showMessageStatus,\n t,\n tDateTimeParser,\n threadList,\n }}\n {...props}\n />\n );\n};\n\nMessageContent.displayName = 'MessageContent{messageSimple{content}}';\n"],"mappings":"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"}
|