stream-chat-react-native-core 5.23.2 → 5.24.0-beta.1
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/AttachmentPicker/AttachmentPicker.js +13 -7
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +10 -7
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +9 -9
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/fr.json +52 -52
- package/lib/commonjs/i18n/hi.json +52 -52
- package/lib/commonjs/i18n/it.json +52 -52
- package/lib/commonjs/i18n/nl.json +52 -52
- package/lib/commonjs/i18n/ru.json +52 -52
- package/lib/commonjs/i18n/tr.json +52 -52
- package/lib/commonjs/store/apis/getChannelMessages.js +8 -5
- package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
- package/lib/commonjs/utils/utils.js +6 -1
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +13 -7
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/Message/Message.js +10 -7
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js +9 -9
- package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/fr.json +52 -52
- package/lib/module/i18n/hi.json +52 -52
- package/lib/module/i18n/it.json +52 -52
- package/lib/module/i18n/nl.json +52 -52
- package/lib/module/i18n/ru.json +52 -52
- package/lib/module/i18n/tr.json +52 -52
- package/lib/module/store/apis/getChannelMessages.js +8 -5
- package/lib/module/store/apis/getChannelMessages.js.map +1 -1
- package/lib/module/utils/utils.js +6 -1
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/fr.json +52 -52
- package/lib/typescript/i18n/hi.json +52 -52
- package/lib/typescript/i18n/it.json +52 -52
- package/lib/typescript/i18n/nl.json +52 -52
- package/lib/typescript/i18n/ru.json +52 -52
- package/lib/typescript/i18n/tr.json +52 -52
- package/lib/typescript/utils/utils.d.ts +3 -0
- package/package.json +1 -1
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +9 -3
- package/src/components/Message/Message.tsx +5 -2
- package/src/components/Message/MessageSimple/MessageStatus.tsx +7 -5
- package/src/i18n/en.json +1 -1
- package/src/i18n/fr.json +52 -52
- package/src/i18n/hi.json +52 -52
- package/src/i18n/it.json +52 -52
- package/src/i18n/nl.json +52 -52
- package/src/i18n/ru.json +52 -52
- package/src/i18n/tr.json +52 -52
- package/src/store/apis/getChannelMessages.ts +10 -7
- package/src/utils/utils.ts +12 -0
- 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","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","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","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextShowUnreadUnderlay","nextT","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo } 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 { hasOnlyEmojis, MessageStatusTypes } 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 | '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 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 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 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\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 triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCreateMessageContext","_useMessageActionHandlers","_useMessageActions2","_messageActions","_ChannelContext","_ChatContext","_KeyboardContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_OwnCapabilitiesContext","_ThemeContext","_ThreadContext","_TranslationContext","_native","_utils","_useMessageList","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageWithContext","props","_message$user","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","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","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextShowUnreadUnderlay","nextT","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo } 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 { hasOnlyEmojis, isBlockedMessage, MessageStatusTypes } 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 | '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 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 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 if (isBlockedMessage(message)) {\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 triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -82,14 +82,14 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
82
82
|
lineNumber: 65,
|
|
83
83
|
columnNumber: 11
|
|
84
84
|
}
|
|
85
|
-
}, message.readBy) : null, typeof message.readBy === 'number' || message.readBy === true ? _react["default"].createElement(_CheckAll.CheckAll, (0, _extends2["default"])({
|
|
85
|
+
}, message.readBy) : null, message.type !== 'error' ? typeof message.readBy === 'number' || message.readBy === true ? _react["default"].createElement(_CheckAll.CheckAll, (0, _extends2["default"])({
|
|
86
86
|
pathFill: accent_blue
|
|
87
87
|
}, checkAllIcon, {
|
|
88
88
|
__self: _this,
|
|
89
89
|
__source: {
|
|
90
90
|
fileName: _jsxFileName,
|
|
91
|
-
lineNumber:
|
|
92
|
-
columnNumber:
|
|
91
|
+
lineNumber: 74,
|
|
92
|
+
columnNumber: 13
|
|
93
93
|
}
|
|
94
94
|
})) : _react["default"].createElement(_Check.Check, (0, _extends2["default"])({
|
|
95
95
|
pathFill: grey_dark
|
|
@@ -97,10 +97,10 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
97
97
|
__self: _this,
|
|
98
98
|
__source: {
|
|
99
99
|
fileName: _jsxFileName,
|
|
100
|
-
lineNumber:
|
|
101
|
-
columnNumber:
|
|
100
|
+
lineNumber: 76,
|
|
101
|
+
columnNumber: 13
|
|
102
102
|
}
|
|
103
|
-
})));
|
|
103
|
+
})) : null);
|
|
104
104
|
}
|
|
105
105
|
if (message.status === _utils.MessageStatusTypes.RECEIVED && message.type !== 'ephemeral') {
|
|
106
106
|
return _react["default"].createElement(_reactNative.View, {
|
|
@@ -109,7 +109,7 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
109
109
|
__self: _this,
|
|
110
110
|
__source: {
|
|
111
111
|
fileName: _jsxFileName,
|
|
112
|
-
lineNumber:
|
|
112
|
+
lineNumber: 85,
|
|
113
113
|
columnNumber: 7
|
|
114
114
|
}
|
|
115
115
|
}, _react["default"].createElement(_Check.Check, (0, _extends2["default"])({
|
|
@@ -118,7 +118,7 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
118
118
|
__self: _this,
|
|
119
119
|
__source: {
|
|
120
120
|
fileName: _jsxFileName,
|
|
121
|
-
lineNumber:
|
|
121
|
+
lineNumber: 86,
|
|
122
122
|
columnNumber: 9
|
|
123
123
|
}
|
|
124
124
|
})));
|
|
@@ -148,7 +148,7 @@ var MessageStatus = function MessageStatus(props) {
|
|
|
148
148
|
__self: _this,
|
|
149
149
|
__source: {
|
|
150
150
|
fileName: _jsxFileName,
|
|
151
|
-
lineNumber:
|
|
151
|
+
lineNumber: 130,
|
|
152
152
|
columnNumber: 10
|
|
153
153
|
}
|
|
154
154
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_MessageContext","_ThemeContext","_Check","_CheckAll","_Time","_utils","_useMessageList","_this","_jsxFileName","styles","StyleSheet","create","readByCount","fontSize","fontWeight","paddingRight","statusContainer","alignItems","flexDirection","justifyContent","MessageStatusWithContext","props","message","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","grey_dark","_useTheme$theme$messa","messageSimple","status","checkAllIcon","checkIcon","timeIcon","MessageStatusTypes","SENDING","createElement","View","style","testID","__self","__source","fileName","lineNumber","columnNumber","Time","_extends2","FAILED","isMessageWithStylesReadByAndDateSeparator","readBy","Text","color","CheckAll","pathFill","Check","RECEIVED","type","areEqual","prevProps","nextProps","prevMessage","prevThreadList","nextMessage","nextThreadList","threadListEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","_useMessageContext","useMessageContext","exports","displayName"],"sources":["MessageStatus.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { Check } from '../../../icons/Check';\nimport { CheckAll } from '../../../icons/CheckAll';\nimport { Time } from '../../../icons/Time';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { MessageStatusTypes } from '../../../utils/utils';\n\nimport { isMessageWithStylesReadByAndDateSeparator } from '../../MessageList/hooks/useMessageList';\n\nconst styles = StyleSheet.create({\n readByCount: {\n fontSize: 11,\n fontWeight: '700',\n paddingRight: 3,\n },\n statusContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n justifyContent: 'center',\n paddingRight: 3,\n },\n});\n\nexport type MessageStatusPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageContextValue<StreamChatGenerics>, 'message' | 'threadList'>;\n\nconst MessageStatusWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageStatusPropsWithContext<StreamChatGenerics>,\n) => {\n const { message, threadList } = props;\n\n const {\n theme: {\n colors: { accent_blue, grey_dark },\n messageSimple: {\n status: { checkAllIcon, checkIcon, readByCount, statusContainer, timeIcon },\n },\n },\n } = useTheme();\n\n if (message.status === MessageStatusTypes.SENDING) {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='sending-container'>\n <Time {...timeIcon} />\n </View>\n );\n }\n\n if (threadList || message.status === MessageStatusTypes.FAILED) return null;\n\n if (isMessageWithStylesReadByAndDateSeparator(message)) {\n return (\n <View style={[styles.statusContainer, statusContainer]}>\n {typeof message.readBy === 'number' ? (\n <Text\n style={[styles.readByCount, { color: accent_blue }, readByCount]}\n testID='read-by-container'\n >\n {message.readBy}\n </Text>\n ) : null}\n {typeof message.readBy === 'number' || message.readBy === true ? (\n <CheckAll pathFill={accent_blue} {...checkAllIcon} />\n ) : (\n <Check pathFill={grey_dark} {...checkIcon} />\n )}\n </View>\n );\n }\n\n if (message.status === MessageStatusTypes.RECEIVED && message.type !== 'ephemeral') {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='delivered-container'>\n <Check pathFill={grey_dark} {...checkIcon} />\n </View>\n );\n }\n\n return null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageStatusPropsWithContext<StreamChatGenerics>,\n nextProps: MessageStatusPropsWithContext<StreamChatGenerics>,\n) => {\n const { message: prevMessage, threadList: prevThreadList } = prevProps;\n const { message: nextMessage, threadList: nextThreadList } = nextProps;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n const messageEqual =\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy);\n if (!messageEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageStatus = React.memo(\n MessageStatusWithContext,\n areEqual,\n) as typeof MessageStatusWithContext;\n\nexport type MessageStatusProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageStatusPropsWithContext<StreamChatGenerics>>;\n\nexport const MessageStatus = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageStatusProps<StreamChatGenerics>,\n) => {\n const { message, threadList } = useMessageContext<StreamChatGenerics>();\n\n return <MemoizedMessageStatus {...{ message, threadList }} {...props} />;\n};\n\nMessageStatus.displayName = 'MessageStatus{messageSimple{status}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_MessageContext","_ThemeContext","_Check","_CheckAll","_Time","_utils","_useMessageList","_this","_jsxFileName","styles","StyleSheet","create","readByCount","fontSize","fontWeight","paddingRight","statusContainer","alignItems","flexDirection","justifyContent","MessageStatusWithContext","props","message","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","grey_dark","_useTheme$theme$messa","messageSimple","status","checkAllIcon","checkIcon","timeIcon","MessageStatusTypes","SENDING","createElement","View","style","testID","__self","__source","fileName","lineNumber","columnNumber","Time","_extends2","FAILED","isMessageWithStylesReadByAndDateSeparator","readBy","Text","color","type","CheckAll","pathFill","Check","RECEIVED","areEqual","prevProps","nextProps","prevMessage","prevThreadList","nextMessage","nextThreadList","threadListEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","_useMessageContext","useMessageContext","exports","displayName"],"sources":["MessageStatus.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { Check } from '../../../icons/Check';\nimport { CheckAll } from '../../../icons/CheckAll';\nimport { Time } from '../../../icons/Time';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { MessageStatusTypes } from '../../../utils/utils';\n\nimport { isMessageWithStylesReadByAndDateSeparator } from '../../MessageList/hooks/useMessageList';\n\nconst styles = StyleSheet.create({\n readByCount: {\n fontSize: 11,\n fontWeight: '700',\n paddingRight: 3,\n },\n statusContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n justifyContent: 'center',\n paddingRight: 3,\n },\n});\n\nexport type MessageStatusPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageContextValue<StreamChatGenerics>, 'message' | 'threadList'>;\n\nconst MessageStatusWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageStatusPropsWithContext<StreamChatGenerics>,\n) => {\n const { message, threadList } = props;\n\n const {\n theme: {\n colors: { accent_blue, grey_dark },\n messageSimple: {\n status: { checkAllIcon, checkIcon, readByCount, statusContainer, timeIcon },\n },\n },\n } = useTheme();\n\n if (message.status === MessageStatusTypes.SENDING) {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='sending-container'>\n <Time {...timeIcon} />\n </View>\n );\n }\n\n if (threadList || message.status === MessageStatusTypes.FAILED) return null;\n\n if (isMessageWithStylesReadByAndDateSeparator(message)) {\n return (\n <View style={[styles.statusContainer, statusContainer]}>\n {typeof message.readBy === 'number' ? (\n <Text\n style={[styles.readByCount, { color: accent_blue }, readByCount]}\n testID='read-by-container'\n >\n {message.readBy}\n </Text>\n ) : null}\n {message.type !== 'error' ? (\n typeof message.readBy === 'number' || message.readBy === true ? (\n <CheckAll pathFill={accent_blue} {...checkAllIcon} />\n ) : (\n <Check pathFill={grey_dark} {...checkIcon} />\n )\n ) : null}\n </View>\n );\n }\n\n if (message.status === MessageStatusTypes.RECEIVED && message.type !== 'ephemeral') {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='delivered-container'>\n <Check pathFill={grey_dark} {...checkIcon} />\n </View>\n );\n }\n\n return null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageStatusPropsWithContext<StreamChatGenerics>,\n nextProps: MessageStatusPropsWithContext<StreamChatGenerics>,\n) => {\n const { message: prevMessage, threadList: prevThreadList } = prevProps;\n const { message: nextMessage, threadList: nextThreadList } = nextProps;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n const messageEqual =\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy);\n if (!messageEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageStatus = React.memo(\n MessageStatusWithContext,\n areEqual,\n) as typeof MessageStatusWithContext;\n\nexport type MessageStatusProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageStatusPropsWithContext<StreamChatGenerics>>;\n\nexport const MessageStatus = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageStatusProps<StreamChatGenerics>,\n) => {\n const { message, threadList } = useMessageContext<StreamChatGenerics>();\n\n return <MemoizedMessageStatus {...{ message, threadList }} {...props} />;\n};\n\nMessageStatus.displayName = 'MessageStatus{messageSimple{status}}';\n"],"mappings":"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"}
|
package/lib/module/i18n/en.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"File type not supported": "File type not supported",
|
|
25
25
|
"Flag": "Flag",
|
|
26
26
|
"Flag Message": "Flag Message",
|
|
27
|
-
"Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged
|
|
27
|
+
"Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged",
|
|
28
28
|
"How about sending your first message to a friend?": "How about sending your first message to a friend?",
|
|
29
29
|
"Instant Commands": "Instant Commands",
|
|
30
30
|
"Let's start chatting!": "Let's start chatting!",
|
package/lib/module/i18n/fr.json
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 Réponse",
|
|
3
|
-
"1 Thread Reply": "
|
|
3
|
+
"1 Thread Reply": "",
|
|
4
4
|
"Allow access to your Gallery": "Autoriser l'accès à votre galerie",
|
|
5
5
|
"Allow camera access in device settings": "Autoriser l'accès à la caméra dans les paramètres de l'appareil",
|
|
6
6
|
"Also send to channel": "Envoyer également à la chaîne",
|
|
7
|
-
"Are you sure you want to permanently delete this message?": "
|
|
8
|
-
"Block User": "
|
|
9
|
-
"Cancel": "
|
|
10
|
-
"Cannot Flag Message": "
|
|
11
|
-
"Copy Message": "
|
|
12
|
-
"Delete": "
|
|
13
|
-
"Delete Message": "
|
|
7
|
+
"Are you sure you want to permanently delete this message?": "",
|
|
8
|
+
"Block User": "",
|
|
9
|
+
"Cancel": "",
|
|
10
|
+
"Cannot Flag Message": "",
|
|
11
|
+
"Copy Message": "",
|
|
12
|
+
"Delete": "",
|
|
13
|
+
"Delete Message": "",
|
|
14
14
|
"Device camera is used to take photos or videos.": "L'appareil photo de l'appareil est utilisé pour prendre des photos ou des vidéos.",
|
|
15
|
-
"Do you want to send a copy of this message to a moderator for further investigation?": "
|
|
16
|
-
"Edit Message": "
|
|
15
|
+
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
|
+
"Edit Message": "",
|
|
17
17
|
"Editing Message": "Édite un message",
|
|
18
|
-
"Emoji matching": "
|
|
19
|
-
"Empty message...": "
|
|
20
|
-
"Error loading": "
|
|
21
|
-
"Error loading channel list...": "
|
|
22
|
-
"Error loading messages for this channel...": "
|
|
23
|
-
"Error while loading, please reload/refresh": "
|
|
18
|
+
"Emoji matching": "",
|
|
19
|
+
"Empty message...": "",
|
|
20
|
+
"Error loading": "",
|
|
21
|
+
"Error loading channel list...": "",
|
|
22
|
+
"Error loading messages for this channel...": "",
|
|
23
|
+
"Error while loading, please reload/refresh": "",
|
|
24
24
|
"File type not supported": "Le type de fichier n'est pas pris en charge",
|
|
25
|
-
"Flag": "
|
|
26
|
-
"Flag Message": "
|
|
27
|
-
"Flag action failed either due to a network issue or the message is already flagged": "
|
|
28
|
-
"How about sending your first message to a friend?": "
|
|
29
|
-
"Instant Commands": "
|
|
30
|
-
"Let's start chatting!": "
|
|
31
|
-
"Links are disabled": "
|
|
32
|
-
"Loading channels...": "
|
|
33
|
-
"Loading messages...": "
|
|
34
|
-
"Loading...": "
|
|
35
|
-
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "
|
|
25
|
+
"Flag": "",
|
|
26
|
+
"Flag Message": "",
|
|
27
|
+
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
|
+
"How about sending your first message to a friend?": "",
|
|
29
|
+
"Instant Commands": "",
|
|
30
|
+
"Let's start chatting!": "",
|
|
31
|
+
"Links are disabled": "",
|
|
32
|
+
"Loading channels...": "",
|
|
33
|
+
"Loading messages...": "",
|
|
34
|
+
"Loading...": "",
|
|
35
|
+
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
36
36
|
"Message Reactions": "Réactions aux messages",
|
|
37
|
-
"Message deleted": "
|
|
38
|
-
"Message flagged": "
|
|
39
|
-
"Mute User": "
|
|
40
|
-
"Not supported": "
|
|
41
|
-
"Nothing yet...": "
|
|
42
|
-
"Ok": "
|
|
43
|
-
"Only visible to you": "
|
|
37
|
+
"Message deleted": "",
|
|
38
|
+
"Message flagged": "",
|
|
39
|
+
"Mute User": "",
|
|
40
|
+
"Not supported": "",
|
|
41
|
+
"Nothing yet...": "",
|
|
42
|
+
"Ok": "",
|
|
43
|
+
"Only visible to you": "",
|
|
44
44
|
"Open Settings": "Ouvrir les paramètres",
|
|
45
45
|
"Photo": "Photo",
|
|
46
46
|
"Photos and Videos": "Photos et vidéos",
|
|
47
|
-
"Pin to Conversation": "
|
|
48
|
-
"Pinned by": "
|
|
47
|
+
"Pin to Conversation": "",
|
|
48
|
+
"Pinned by": "",
|
|
49
49
|
"Please enable access to your photos and videos so you can share them.": "Veuillez autoriser l'accès à vos photos et vidéos afin de pouvoir les partager.",
|
|
50
|
-
"Please select a channel first": "
|
|
51
|
-
"Reconnecting...": "
|
|
52
|
-
"Reply": "
|
|
50
|
+
"Please select a channel first": "",
|
|
51
|
+
"Reconnecting...": "",
|
|
52
|
+
"Reply": "",
|
|
53
53
|
"Reply to Message": "Répondre au message",
|
|
54
|
-
"Resend": "
|
|
54
|
+
"Resend": "",
|
|
55
55
|
"Search GIFs": "Rechercher des GIF",
|
|
56
56
|
"Select More Photos": "Sélectionner plus de photos",
|
|
57
57
|
"Send a message": "Envoyer un message",
|
|
58
|
-
"Sending links is not allowed in this conversation": "
|
|
58
|
+
"Sending links is not allowed in this conversation": "",
|
|
59
59
|
"Slow mode ON": "Mode lent activé",
|
|
60
|
-
"The message has been reported to a moderator.": "
|
|
61
|
-
"Thread Reply": "
|
|
62
|
-
"Unblock User": "
|
|
60
|
+
"The message has been reported to a moderator.": "",
|
|
61
|
+
"Thread Reply": "",
|
|
62
|
+
"Unblock User": "",
|
|
63
63
|
"Unknown User": "Utilisateur inconnu",
|
|
64
|
-
"Unmute User": "
|
|
65
|
-
"Unpin from Conversation": "
|
|
64
|
+
"Unmute User": "",
|
|
65
|
+
"Unpin from Conversation": "",
|
|
66
66
|
"Unread Messages": "Messages non lus",
|
|
67
67
|
"Video": "Vidéo",
|
|
68
|
-
"You": "
|
|
69
|
-
"You can't send messages in this channel": "
|
|
70
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "
|
|
68
|
+
"You": "",
|
|
69
|
+
"You can't send messages in this channel": "",
|
|
70
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
71
71
|
"{{ index }} of {{ photoLength }}": "{{ index }} sur {{ photoLength }}",
|
|
72
72
|
"{{ replyCount }} Replies": "{{ replyCount }} Réponses",
|
|
73
|
-
"{{ replyCount }} Thread Replies": "
|
|
74
|
-
"{{ user }} is typing": "
|
|
75
|
-
"🏙 Attachment...": "
|
|
73
|
+
"{{ replyCount }} Thread Replies": "",
|
|
74
|
+
"{{ user }} is typing": "",
|
|
75
|
+
"🏙 Attachment...": ""
|
|
76
76
|
}
|