stream-chat-react-native-core 5.15.3 → 5.16.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +1 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +25 -22
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +4 -4
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -2
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +38 -54
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +14 -12
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +1 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +25 -22
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +4 -4
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +1 -1
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -2
- package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +38 -54
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +14 -12
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +1 -0
- package/lib/typescript/native.d.ts +1 -1
- package/lib/typescript/types/types.d.ts +6 -4
- package/package.json +1 -1
- package/src/components/Attachment/FileAttachmentGroup.tsx +1 -1
- package/src/components/Channel/Channel.tsx +1 -1
- package/src/components/ImageGallery/ImageGallery.tsx +4 -1
- package/src/components/MessageInput/FileUploadPreview.tsx +3 -3
- package/src/components/MessageInput/MessageInput.tsx +2 -2
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
- package/src/components/MessageList/utils/getDateSeparators.ts +4 -2
- package/src/contexts/messageInputContext/MessageInputContext.tsx +25 -32
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +10 -12
- package/src/contexts/messageInputContext/__tests__/pickFile.test.tsx +2 -2
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
- package/src/contexts/overlayContext/OverlayContext.tsx +1 -0
- package/src/contexts/overlayContext/OverlayProvider.tsx +2 -0
- package/src/native.ts +1 -1
- package/src/types/types.ts +9 -4
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_debounce","_interopRequireDefault","_throttle","_mimeTypes","_streamChat","_useCreateChannelContext","_useCreateInputMessageInputContext","_useCreateMessagesContext","_useCreateOwnCapabilitiesContext","_useCreatePaginatedMessageListContext","_useCreateThreadContext","_useCreateTypingContext","_useTargetedMessage2","_ChannelContext","_useChannelState2","_ChatContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_PaginatedMessageListContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_TypingContext","_useAppStateListener","_icons","_native","dbApi","_addReactionToLocalState","_DBSyncManager","_patchMessageTextCommand","_removeReactionFromLocalState","_utils","_Attachment","_AttachmentActions","_AudioAttachment","_Card","_FileAttachment","_FileAttachmentGroup","_FileIcon","_Gallery","_Giphy","_ImageLoadingFailedIndicator","_ImageLoadingIndicator","_VideoThumbnail","_AutoCompleteSuggestionHeader","_AutoCompleteSuggestionItem","_AutoCompleteSuggestionList","_EmptyStateIndicator","_LoadingErrorIndicator","_LoadingIndicator","_KeyboardCompatibleView","_Message","_MessageAvatar","_MessageContent","_MessageDeleted","_MessageFooter","_MessagePinnedHeader","_MessageReplies","_MessageRepliesAvatars","_MessageSimple","_MessageStatus","_ReactionList","_AttachButton","_CommandsButton","_InputEditingStateHeader","_InputGiphySearch","_InputReplyStateHeader","_CooldownTimer","_FileUploadPreview","_ImageUploadPreview","_InputButtons","_MoreOptionsButton","_SendButton","_SendMessageDisallowedIndicator","_ShowThreadMessageInChannelButton","_UploadProgressIndicator","_DateHeader","_InlineDateSeparator","_InlineUnreadIndicator","_MessageList","_MessageSystem","_NetworkDownIndicator","_ScrollToBottomButton","_TypingIndicator","_TypingIndicatorContainer","_OverlayReactionList","_Reply","_excluded","_excluded2","_excluded3","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","selectChannel","fontWeight","padding","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","exports","scrollToFirstUnreadThreshold","defaultThrottleInterval","defaultDebounceInterval","throttleOptions","leading","trailing","debounceOptions","ChannelWithContext","props","_client$user","_channel$data","_ref26","_ref27","additionalKeyboardAvoidingViewProps","additionalTextInputProps","additionalTouchableProps","_props$allowThreadMes","allowThreadMessagesInChannel","_props$AttachButton","AttachButton","AttachButtonDefault","_props$Attachment","Attachment","AttachmentDefault","_props$AttachmentActi","AttachmentActions","AttachmentActionsDefault","_props$AudioAttachmen","AudioAttachment","AudioAttachmentDefault","_props$AutoCompleteSu","AutoCompleteSuggestionHeader","AutoCompleteSuggestionHeaderDefault","_props$AutoCompleteSu2","AutoCompleteSuggestionItem","AutoCompleteSuggestionItemDefault","_props$AutoCompleteSu3","AutoCompleteSuggestionList","AutoCompleteSuggestionListDefault","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","_props$Card","Card","CardDefault","CardCover","CardFooter","CardHeader","channel","children","client","_props$CommandsButton","CommandsButton","CommandsButtonDefault","compressImageQuality","_props$CooldownTimer","CooldownTimer","CooldownTimerDefault","_props$DateHeader","DateHeader","DateHeaderDefault","_props$deletedMessage","deletedMessagesVisibilityType","_props$disableIfFroze","disableIfFrozenChannel","_props$disableKeyboar","disableKeyboardCompatibleView","disableTypingIndicator","_props$dismissKeyboar","dismissKeyboardOnMessageTouch","doDocUploadRequest","doImageUploadRequest","doMarkReadRequest","doSendMessageRequest","doUpdateMessageRequest","_props$EmptyStateIndi","EmptyStateIndicator","EmptyStateIndicatorDefault","_props$enableMessageG","enableMessageGroupingByUser","enableOfflineSupport","_props$enforceUniqueR","enforceUniqueReaction","_props$FileAttachment","FileAttachment","FileAttachmentDefault","_props$FileAttachment2","FileAttachmentGroup","FileAttachmentGroupDefault","_props$FileAttachment3","FileAttachmentIcon","FileIconDefault","_props$FileUploadPrev","FileUploadPreview","FileUploadPreviewDefault","_props$FlatList","FlatList","FlatListDefault","forceAlignMessages","formatDate","_props$Gallery","Gallery","GalleryDefault","getMessagesGroupStyles","_props$Giphy","Giphy","GiphyDefault","giphyEnabled","_props$giphyVersion","giphyVersion","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReaction","handleRetry","handleThreadReply","_props$hasCommands","hasCommands","_props$hasFilePicker","hasFilePicker","pickDocument","_props$hasImagePicker","hasImagePicker","_props$hideDateSepara","hideDateSeparators","_props$hideStickyDate","hideStickyDateHeader","_props$ImageUploadPre","ImageUploadPreview","ImageUploadPreviewDefault","_props$initialScrollT","initialScrollToFirstUnreadMessage","initialValue","_props$InlineDateSepa","InlineDateSeparator","InlineDateSeparatorDefault","_props$InlineUnreadIn","InlineUnreadIndicator","InlineUnreadIndicatorDefault","Input","_props$InputButtons","InputButtons","InputButtonsDefault","_props$InputEditingSt","InputEditingStateHeader","InputEditingStateHeaderDefault","_props$InputGiphySear","InputGiphySearch","InputGiphyCommandInputDefault","_props$InputReplyStat","InputReplyStateHeader","InputReplyStateHeaderDefault","isAttachmentEqual","keyboardBehavior","_props$KeyboardCompat","KeyboardCompatibleView","KeyboardCompatibleViewDefault","keyboardVerticalOffset","_props$legacyImageVie","legacyImageViewerSwipeBehaviour","_props$LoadingErrorIn","LoadingErrorIndicator","LoadingErrorIndicatorDefault","_props$LoadingIndicat","LoadingIndicator","LoadingIndicatorDefault","loadingMoreProp","loadingMore","loadingMoreRecentProp","loadingMoreRecent","_props$ImageLoadingFa","ImageLoadingFailedIndicator","ImageLoadingFailedIndicatorDefault","_props$ImageLoadingIn","ImageLoadingIndicator","ImageLoadingIndicatorDefault","markdownRules","maxMessageLengthProp","maxMessageLength","_props$maxNumberOfFil","maxNumberOfFiles","maxTimeBetweenGroupedMessages","_props$mentionAllAppU","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","members","_props$Message","Message","MessageDefault","messageActions","_props$MessageAvatar","MessageAvatar","MessageAvatarDefault","_props$MessageContent","MessageContent","MessageContentDefault","_props$messageContent","messageContentOrder","_props$MessageDeleted","MessageDeleted","MessageDeletedDefault","_props$MessageFooter","MessageFooter","MessageFooterDefault","MessageHeader","messageId","_props$MessageList","MessageList","MessageListDefault","_props$MessagePinnedH","MessagePinnedHeader","MessagePinnedHeaderDefault","_props$MessageReplies","MessageReplies","MessageRepliesDefault","_props$MessageReplies2","MessageRepliesAvatars","MessageRepliesAvatarsDefault","messages","_props$MessageSimple","MessageSimple","MessageSimpleDefault","_props$MessageStatus","MessageStatus","MessageStatusDefault","_props$MessageSystem","MessageSystem","MessageSystemDefault","MessageText","_props$MoreOptionsBut","MoreOptionsButton","MoreOptionsButtonDefault","myMessageTheme","_props$newMessageStat","newMessageStateUpdateThrottleInterval","_props$NetworkDownInd","NetworkDownIndicator","NetworkDownIndicatorDefault","_props$numberOfLines","numberOfLines","onChangeText","onLongPressMessage","overrideOwnCapabilities","onPressInMessage","onPressMessage","_props$OverlayReactio","OverlayReactionList","OverlayReactionListDefault","_props$ReactionList","ReactionList","ReactionListDefault","read","_props$Reply","Reply","ReplyDefault","_props$ScrollToBottom","ScrollToBottomButton","ScrollToBottomButtonDefault","selectReaction","_props$SendButton","SendButton","SendButtonDefault","_props$SendMessageDis","SendMessageDisallowedIndicator","SendMessageDisallowedIndicatorDefault","_props$sendImageAsync","sendImageAsync","setInputRef","setMembers","setMessages","setRead","setThreadMessages","setTyping","setWatcherCount","setWatchers","shouldSyncChannel","_props$ShowThreadMess","ShowThreadMessageInChannelButton","ShowThreadMessageInChannelButtonDefault","_props$stateUpdateThr","stateUpdateThrottleInterval","StickyHeader","_props$supportedReact","supportedReactions","t","threadProps","thread","threadList","threadMessages","typing","_props$TypingIndicato","TypingIndicator","TypingIndicatorDefault","_props$TypingIndicato2","TypingIndicatorContainer","TypingIndicatorContainerDefault","_props$UploadProgress","UploadProgressIndicator","UploadProgressIndicatorDefault","_props$UrlPreview","UrlPreview","_props$VideoThumbnail","VideoThumbnail","VideoThumbnailDefault","watcherCount","watchers","_useTheme","useTheme","_useTheme$theme","theme","black","colors","_useState","useState","_useState2","_slicedToArray2","deleted","setDeleted","_useState3","_useState4","editing","setEditing","_useState5","_useState6","error","setError","_useState7","_useState8","hasMore","setHasMore","_useState9","_useState10","lastRead","setLastRead","_useState11","state","length","_useState12","loading","setLoading","_useState13","_useState14","setLoadingMore","_useState15","_useState16","setLoadingMoreRecent","_useState17","_useState18","quotedMessage","setQuotedMessage","_useState19","_useState20","setThread","_useState21","_useState22","threadHasMore","setThreadHasMore","_useState23","_useState24","threadLoadingMore","setThreadLoadingMore","_useState25","_useState26","syncingChannel","setSyncingChannel","_useState27","_useState28","hasNoMoreRecentMessagesToLoad","setHasNoMoreRecentMessagesToLoad","_useTargetedMessage","useTargetedMessage","setTargetedMessage","targetedMessage","channelId","id","useEffect","initChannel","offlineMode","initialized","loadChannel","loadChannelAroundMessage","countUnread","loadChannelAtFirstUnreadMessage","copyChannelState","cancel","copyReadState","copyTypingState","loadMoreFinished","loadMoreThreadFinished","threadPropsExists","_channel$state$thread","threads","handleAppBackground","useCallback","_channelData$own_capa","channelData","data","own_capabilities","includes","sendEvent","parent_id","useAppStateListener","undefined","isAdmin","user","role","membership","isModerator","isOwner","markRead","useRef","throttle","disconnected","clientChannelConfig","read_events","logChatPromiseExecution","current","copyMessagesState","_toConsumableArray2","_extends2","watcher_count","channelSubscriptions","push","on","forEach","s","unsubscribe","handleEvent","event","_event$message","updatedThreadMessages","message","updatedThread","formatMessage","_channel$on","_client$on","cid","channelQueryCallRef","_ref","_asyncToGenerator2","_regenerator","mark","_callee","queryCall","onAfterQueryCall","_args","arguments","wrap","_callee$","_context","prev","next","Date","t0","Error","stop","_x","apply","unreadMessageIdToScrollTo","_callee2","lastReadDate","_channel$state$messag","_callee2$","_context2","query","created_at_around","limit","find","m","created_at","loadMessageIntoState","_ref3","_callee3","_callee3$","_context3","setIsUpToDate","loadChannelAtMessage","_ref5","_ref5$after","after","_ref5$before","before","_callee4","_callee4$","_context4","queryAtMessage","_callee5","_callee5$","_context5","isUpToDate","watch","abrupt","reloadThread","_ref8","_callee6","parentID","queryResponse","updatedHasMore","_yield$channel$getMes","_messages","_messages2","threadMessage","formattedMessage","_callee6$","_context6","getReplies","sent","getMessagesById","console","warn","resyncChannel","_ref9","_callee7","_messages$","oldListTopMessage","oldListTopMessageId","oldListBottomMessage","newListTopMessage","newListBottomMessage","parseMessage","failedMessages","failedThreadMessages","oldListTopMessageCreatedAt","oldListBottomMessageCreatedAt","newListTopMessageCreatedAt","newListBottomMessageCreatedAt","finalMessages","index","_callee7$","_context7","clearMessages","addMessagesSorted","addPinnedMessages","pinned_messages","_message$pinned_at","_message$updated_at","toString","pinned_at","updated_at","filter","status","MessageStatusTypes","FAILED","map","findIndex","slice","resyncChannelRef","connectionChangedHandler","connectionChangedSubscription","DBSyncManager","onSyncStatusChange","online","reloadChannel","_callee8","_callee8$","_context8","_ref12","_callee9","_ref11","_ref11$after","_ref11$before","_callee9$","_context9","queryBeforeMessage","queryAfterMessage","_x2","_ref13","_callee10","_args10","_callee10$","_context10","id_lt","_x3","_ref14","_callee11","_args11","_callee11$","_context11","id_gte","_x4","getChannelConfigSafely","getConfig","_","updateMessage","updatedMessage","extraState","addMessageSorted","replaceMessage","oldMessage","newMessage","removeMessage","createMessagePreview","_ref15","attachments","mentioned_users","text","extraFields","_objectWithoutProperties2","_client$user2","channel_mutes","devices","mutes","messageUser","preview","__html","html","userID","generateRandomId","userId","reactions","SENDING","quoted_message_id","quoted_message","uploadPendingAttachments","_ref16","_callee12","_updatedMessage$attac","i","_updatedMessage$attac2","attachment","file","_file$name","localAssetURI","uri","filename","contentType","uploadResponse","response","_callee12$","_context12","originalFile","image_url","isLocalUrl","Platform","OS","getLocalAssetUri","name","replace","lookup","t1","sendImage","asset_url","t2","sendFile","thumb_url","_x5","sendMessageRequest","_ref17","_callee13","retrying","_updatedMessage","deleted_at","latest_reactions","own_reactions","reaction_counts","mentionedUserIds","_messageData","messageResponse","_callee13$","_context13","messageData","patchMessageTextCommand","sendMessage","RECEIVED","log","_x6","_x7","_ref18","_callee14","_channel$state","messagePreview","_callee14$","_context14","filterErrorMessages","commands","messageInput","upsertMessages","_x8","retrySendMessage","_ref19","_callee15","statusPendingMessage","_callee15$","_context15","_x9","debounce","newMessages","loadMore","_ref20","_callee16","oldestMessage","oldestID","_args16","_callee16$","_context16","loadMoreRecent","_ref21","_callee17","recentMessage","_args17","_callee17$","_context17","loadMoreRecentFinished","editMessage","setEditingState","setQuotedMessageState","clearEditingState","clearQuotedMessageState","deleteMessage","sendReaction","_ref22","_callee18","payload","_callee18$","_context18","enforce_unique","addReactionToLocalState","reactionType","queueTask","task","channelType","_x10","_x11","_ref23","_callee19","_data","_callee19$","_context19","dropPendingTasks","toISOString","_x12","deleteReaction","_ref24","_callee20","_callee20$","_context20","removeReactionFromLocalState","_x13","_x14","openThread","_channel$state2","newThreadMessages","closeThread","newThreadHasMore","loadMoreThread","_ref25","_callee21","_threadMessages$","oldestMessageID","_callee21$","_context21","ownCapabilitiesContext","useCreateOwnCapabilitiesContext","overrideCapabilities","channelContext","useCreateChannelContext","disabled","frozen","some","command","isChannelActive","inputMessageInputContext","useCreateInputMessageInputContext","max_message_length","messageListContext","useCreatePaginatedMessageListContext","messagesContext","useCreateMessagesContext","suggestionsContext","threadContext","useCreateThreadContext","typingContext","useCreateTypingContext","createElement","listType","retry","__self","__source","fileName","lineNumber","columnNumber","Text","style","color","testID","behavior","enabled","ChannelProvider","value","OwnCapabilitiesProvider","TypingProvider","PaginatedMessageListProvider","MessagesProvider","ThreadProvider","SuggestionsProvider","MessageInputProvider","View","height","Channel","_props$thread","_props$thread2","_useChatContext","useChatContext","_useTranslationContex","useTranslationContext","_useChannelState","useChannelState"],"sources":["Channel.tsx"],"sourcesContent":["import React, { PropsWithChildren, useCallback, useEffect, useRef, useState } from 'react';\nimport { KeyboardAvoidingViewProps, Platform, StyleSheet, Text, View } from 'react-native';\n\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\n\nimport { lookup } from 'mime-types';\nimport {\n Channel as ChannelClass,\n ChannelState,\n Channel as ChannelType,\n EventHandler,\n logChatPromiseExecution,\n MessageResponse,\n Reaction,\n SendMessageAPIResponse,\n StreamChat,\n Event as StreamEvent,\n Message as StreamMessage,\n} from 'stream-chat';\n\nimport { useCreateChannelContext } from './hooks/useCreateChannelContext';\n\nimport { useCreateInputMessageInputContext } from './hooks/useCreateInputMessageInputContext';\n\nimport { useCreateMessagesContext } from './hooks/useCreateMessagesContext';\n\nimport { useCreateOwnCapabilitiesContext } from './hooks/useCreateOwnCapabilitiesContext';\nimport { useCreatePaginatedMessageListContext } from './hooks/useCreatePaginatedMessageListContext';\n\nimport { useCreateThreadContext } from './hooks/useCreateThreadContext';\n\nimport { useCreateTypingContext } from './hooks/useCreateTypingContext';\n\nimport { useTargetedMessage } from './hooks/useTargetedMessage';\n\nimport { ChannelContextValue, ChannelProvider } from '../../contexts/channelContext/ChannelContext';\nimport type { UseChannelStateValue } from '../../contexts/channelsStateContext/useChannelState';\nimport { useChannelState } from '../../contexts/channelsStateContext/useChannelState';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n InputMessageInputContextValue,\n MessageInputProvider,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n MessagesProvider,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OwnCapabilitiesContextValue,\n OwnCapabilitiesProvider,\n} from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n PaginatedMessageListContextValue,\n PaginatedMessageListProvider,\n} from '../../contexts/paginatedMessageListContext/PaginatedMessageListContext';\nimport {\n SuggestionsContextValue,\n SuggestionsProvider,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, ThreadProvider } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport { TypingProvider } from '../../contexts/typingContext/TypingContext';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\n\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n WutReaction,\n} from '../../icons';\nimport { FlatList as FlatListDefault, getLocalAssetUri, pickDocument } from '../../native';\nimport * as dbApi from '../../store/apis';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { addReactionToLocalState } from '../../utils/addReactionToLocalState';\nimport { DBSyncManager } from '../../utils/DBSyncManager';\nimport { patchMessageTextCommand } from '../../utils/patchMessageTextCommand';\nimport { removeReactionFromLocalState } from '../../utils/removeReactionFromLocalState';\nimport { generateRandomId, isLocalUrl, MessageStatusTypes, ReactionData } from '../../utils/utils';\nimport { Attachment as AttachmentDefault } from '../Attachment/Attachment';\nimport { AttachmentActions as AttachmentActionsDefault } from '../Attachment/AttachmentActions';\nimport { AudioAttachment as AudioAttachmentDefault } from '../Attachment/AudioAttachment';\nimport { Card as CardDefault } from '../Attachment/Card';\nimport { FileAttachment as FileAttachmentDefault } from '../Attachment/FileAttachment';\nimport { FileAttachmentGroup as FileAttachmentGroupDefault } from '../Attachment/FileAttachmentGroup';\nimport { FileIcon as FileIconDefault } from '../Attachment/FileIcon';\nimport { Gallery as GalleryDefault } from '../Attachment/Gallery';\nimport { Giphy as GiphyDefault } from '../Attachment/Giphy';\nimport { ImageLoadingFailedIndicator as ImageLoadingFailedIndicatorDefault } from '../Attachment/ImageLoadingFailedIndicator';\nimport { ImageLoadingIndicator as ImageLoadingIndicatorDefault } from '../Attachment/ImageLoadingIndicator';\nimport { VideoThumbnail as VideoThumbnailDefault } from '../Attachment/VideoThumbnail';\nimport { AutoCompleteSuggestionHeader as AutoCompleteSuggestionHeaderDefault } from '../AutoCompleteInput/AutoCompleteSuggestionHeader';\nimport { AutoCompleteSuggestionItem as AutoCompleteSuggestionItemDefault } from '../AutoCompleteInput/AutoCompleteSuggestionItem';\nimport { AutoCompleteSuggestionList as AutoCompleteSuggestionListDefault } from '../AutoCompleteInput/AutoCompleteSuggestionList';\nimport { EmptyStateIndicator as EmptyStateIndicatorDefault } from '../Indicators/EmptyStateIndicator';\nimport {\n LoadingErrorIndicator as LoadingErrorIndicatorDefault,\n LoadingErrorProps,\n} from '../Indicators/LoadingErrorIndicator';\nimport { LoadingIndicator as LoadingIndicatorDefault } from '../Indicators/LoadingIndicator';\nimport { KeyboardCompatibleView as KeyboardCompatibleViewDefault } from '../KeyboardCompatibleView/KeyboardCompatibleView';\nimport { Message as MessageDefault } from '../Message/Message';\nimport { MessageAvatar as MessageAvatarDefault } from '../Message/MessageSimple/MessageAvatar';\nimport { MessageContent as MessageContentDefault } from '../Message/MessageSimple/MessageContent';\nimport { MessageDeleted as MessageDeletedDefault } from '../Message/MessageSimple/MessageDeleted';\nimport { MessageFooter as MessageFooterDefault } from '../Message/MessageSimple/MessageFooter';\nimport { MessagePinnedHeader as MessagePinnedHeaderDefault } from '../Message/MessageSimple/MessagePinnedHeader';\nimport { MessageReplies as MessageRepliesDefault } from '../Message/MessageSimple/MessageReplies';\nimport { MessageRepliesAvatars as MessageRepliesAvatarsDefault } from '../Message/MessageSimple/MessageRepliesAvatars';\nimport { MessageSimple as MessageSimpleDefault } from '../Message/MessageSimple/MessageSimple';\nimport { MessageStatus as MessageStatusDefault } from '../Message/MessageSimple/MessageStatus';\nimport { ReactionList as ReactionListDefault } from '../Message/MessageSimple/ReactionList';\nimport { AttachButton as AttachButtonDefault } from '../MessageInput/AttachButton';\nimport { CommandsButton as CommandsButtonDefault } from '../MessageInput/CommandsButton';\nimport { InputEditingStateHeader as InputEditingStateHeaderDefault } from '../MessageInput/components/InputEditingStateHeader';\nimport { InputGiphySearch as InputGiphyCommandInputDefault } from '../MessageInput/components/InputGiphySearch';\nimport { InputReplyStateHeader as InputReplyStateHeaderDefault } from '../MessageInput/components/InputReplyStateHeader';\nimport { CooldownTimer as CooldownTimerDefault } from '../MessageInput/CooldownTimer';\nimport { FileUploadPreview as FileUploadPreviewDefault } from '../MessageInput/FileUploadPreview';\nimport { ImageUploadPreview as ImageUploadPreviewDefault } from '../MessageInput/ImageUploadPreview';\nimport { InputButtons as InputButtonsDefault } from '../MessageInput/InputButtons';\nimport { MoreOptionsButton as MoreOptionsButtonDefault } from '../MessageInput/MoreOptionsButton';\nimport { SendButton as SendButtonDefault } from '../MessageInput/SendButton';\nimport { SendMessageDisallowedIndicator as SendMessageDisallowedIndicatorDefault } from '../MessageInput/SendMessageDisallowedIndicator';\nimport { ShowThreadMessageInChannelButton as ShowThreadMessageInChannelButtonDefault } from '../MessageInput/ShowThreadMessageInChannelButton';\nimport { UploadProgressIndicator as UploadProgressIndicatorDefault } from '../MessageInput/UploadProgressIndicator';\nimport { DateHeader as DateHeaderDefault } from '../MessageList/DateHeader';\nimport type { MessageType } from '../MessageList/hooks/useMessageList';\nimport { InlineDateSeparator as InlineDateSeparatorDefault } from '../MessageList/InlineDateSeparator';\nimport { InlineUnreadIndicator as InlineUnreadIndicatorDefault } from '../MessageList/InlineUnreadIndicator';\nimport { MessageList as MessageListDefault } from '../MessageList/MessageList';\nimport { MessageSystem as MessageSystemDefault } from '../MessageList/MessageSystem';\nimport { NetworkDownIndicator as NetworkDownIndicatorDefault } from '../MessageList/NetworkDownIndicator';\nimport { ScrollToBottomButton as ScrollToBottomButtonDefault } from '../MessageList/ScrollToBottomButton';\nimport { TypingIndicator as TypingIndicatorDefault } from '../MessageList/TypingIndicator';\nimport { TypingIndicatorContainer as TypingIndicatorContainerDefault } from '../MessageList/TypingIndicatorContainer';\nimport { OverlayReactionList as OverlayReactionListDefault } from '../MessageOverlay/OverlayReactionList';\nimport { Reply as ReplyDefault } from '../Reply/Reply';\n\nconst styles = StyleSheet.create({\n selectChannel: { fontWeight: 'bold', padding: 16 },\n});\n\nexport const reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\n/**\n * If count of unread messages is less than 4, then no need to scroll to first unread message,\n * since first unread message will be in visible frame anyways.\n */\nconst scrollToFirstUnreadThreshold = 4;\n\nconst defaultThrottleInterval = 500;\nconst defaultDebounceInterval = 500;\nconst throttleOptions = {\n leading: true,\n trailing: true,\n};\nconst debounceOptions = {\n leading: true,\n trailing: true,\n};\n\nexport type ChannelPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'channel'> &\n Partial<\n Pick<\n ChannelContextValue<StreamChatGenerics>,\n | 'EmptyStateIndicator'\n | 'enableMessageGroupingByUser'\n | 'enforceUniqueReaction'\n | 'giphyEnabled'\n | 'hideStickyDateHeader'\n | 'hideDateSeparators'\n | 'LoadingIndicator'\n | 'maxTimeBetweenGroupedMessages'\n | 'NetworkDownIndicator'\n | 'StickyHeader'\n >\n > &\n Pick<ChatContextValue<StreamChatGenerics>, 'client' | 'enableOfflineSupport'> &\n Partial<\n Omit<\n InputMessageInputContextValue<StreamChatGenerics>,\n 'quotedMessage' | 'editing' | 'clearEditingState' | 'clearQuotedMessageState' | 'sendMessage'\n >\n > &\n Partial<\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem' | 'AutoCompleteSuggestionList'\n >\n > &\n Pick<TranslationContextValue, 't'> &\n Partial<\n Pick<\n PaginatedMessageListContextValue<StreamChatGenerics>,\n 'messages' | 'loadingMore' | 'loadingMoreRecent'\n >\n > &\n UseChannelStateValue<StreamChatGenerics> &\n Partial<\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'Attachment'\n | 'AttachmentActions'\n | 'AudioAttachment'\n | 'Card'\n | 'CardCover'\n | 'CardFooter'\n | 'CardHeader'\n | 'DateHeader'\n | 'deletedMessagesVisibilityType'\n | 'disableTypingIndicator'\n | 'dismissKeyboardOnMessageTouch'\n | 'FileAttachment'\n | 'FileAttachmentIcon'\n | 'FileAttachmentGroup'\n | 'FlatList'\n | 'forceAlignMessages'\n | 'formatDate'\n | 'Gallery'\n | 'getMessagesGroupStyles'\n | 'Giphy'\n | 'giphyVersion'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleReaction'\n | 'handleQuotedReply'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'InlineDateSeparator'\n | 'InlineUnreadIndicator'\n | 'isAttachmentEqual'\n | 'legacyImageViewerSwipeBehaviour'\n | 'ImageLoadingFailedIndicator'\n | 'ImageLoadingIndicator'\n | 'markdownRules'\n | 'Message'\n | 'messageActions'\n | 'MessageAvatar'\n | 'MessageContent'\n | 'messageContentOrder'\n | 'MessageDeleted'\n | 'MessageFooter'\n | 'MessageHeader'\n | 'MessageList'\n | 'MessagePinnedHeader'\n | 'MessageReplies'\n | 'MessageRepliesAvatars'\n | 'MessageSimple'\n | 'MessageStatus'\n | 'MessageSystem'\n | 'MessageText'\n | 'myMessageTheme'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'ReactionList'\n | 'Reply'\n | 'ScrollToBottomButton'\n | 'selectReaction'\n | 'supportedReactions'\n | 'TypingIndicator'\n | 'TypingIndicatorContainer'\n | 'UrlPreview'\n | 'VideoThumbnail'\n >\n > &\n Partial<\n Pick<ThreadContextValue<StreamChatGenerics>, 'allowThreadMessagesInChannel' | 'thread'>\n > & {\n shouldSyncChannel: boolean;\n /**\n * Additional props passed to keyboard avoiding view\n */\n additionalKeyboardAvoidingViewProps?: Partial<KeyboardAvoidingViewProps>;\n /**\n * Disables the channel UI if the channel is frozen\n */\n disableIfFrozenChannel?: boolean;\n /**\n * When true, disables the KeyboardCompatibleView wrapper\n *\n * Channel internally uses the [KeyboardCompatibleView](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx)\n * component to adjust the height of Channel when the keyboard is opened or dismissed. This prop provides the ability to disable this functionality in case you\n * want to use [KeyboardAvoidingView](https://facebook.github.io/react-native/docs/keyboardavoidingview) or handle dismissal yourself.\n * KeyboardAvoidingView works well when your component occupies 100% of screen height, otherwise it may raise some issues.\n */\n disableKeyboardCompatibleView?: boolean;\n /**\n * Overrides the Stream default mark channel read request (Advanced usage only)\n * @param channel Channel object\n */\n doMarkReadRequest?: (channel: ChannelType<StreamChatGenerics>) => void;\n /**\n * Overrides the Stream default send message request (Advanced usage only)\n * @param channelId\n * @param messageData Message object\n */\n doSendMessageRequest?: (\n channelId: string,\n messageData: StreamMessage<StreamChatGenerics>,\n ) => Promise<SendMessageAPIResponse<StreamChatGenerics>>;\n /**\n * Overrides the Stream default update message request (Advanced usage only)\n * @param channelId\n * @param updatedMessage UpdatedMessage object\n */\n doUpdateMessageRequest?: (\n channelId: string,\n updatedMessage: Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0],\n ) => ReturnType<StreamChat<StreamChatGenerics>['updateMessage']>;\n /**\n * When true, messageList will be scrolled at first unread message, when opened.\n */\n initialScrollToFirstUnreadMessage?: boolean;\n keyboardBehavior?: KeyboardAvoidingViewProps['behavior'];\n /**\n * Custom wrapper component that handles height adjustment of Channel component when keyboard is opened or dismissed\n * Default component (accepts the same props): [KeyboardCompatibleView](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx)\n *\n * **Example:**\n *\n * ```\n * <Channel\n * channel={channel}\n * KeyboardCompatibleView={(props) => {\n * return (\n * <KeyboardCompatibleView>\n * {props.children}\n * </KeyboardCompatibleView>\n * )\n * }}\n * />\n * ```\n */\n KeyboardCompatibleView?: React.ComponentType<KeyboardAvoidingViewProps>;\n keyboardVerticalOffset?: number;\n /**\n * Custom loading error indicator to override the Stream default\n */\n LoadingErrorIndicator?: React.ComponentType<LoadingErrorProps>;\n maxMessageLength?: number;\n /**\n * Load the channel at a specified message instead of the most recent message.\n */\n messageId?: string;\n newMessageStateUpdateThrottleInterval?: number;\n overrideOwnCapabilities?: Partial<OwnCapabilitiesContextValue>;\n stateUpdateThrottleInterval?: number;\n /**\n * Tells if channel is rendering a thread list\n */\n threadList?: boolean;\n };\n\nconst ChannelWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChannelPropsWithContext<StreamChatGenerics>>,\n) => {\n const {\n additionalKeyboardAvoidingViewProps,\n additionalTextInputProps,\n additionalTouchableProps,\n allowThreadMessagesInChannel = true,\n AttachButton = AttachButtonDefault,\n Attachment = AttachmentDefault,\n AttachmentActions = AttachmentActionsDefault,\n AudioAttachment = AudioAttachmentDefault,\n AutoCompleteSuggestionHeader = AutoCompleteSuggestionHeaderDefault,\n AutoCompleteSuggestionItem = AutoCompleteSuggestionItemDefault,\n AutoCompleteSuggestionList = AutoCompleteSuggestionListDefault,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n Card = CardDefault,\n CardCover,\n CardFooter,\n CardHeader,\n channel,\n children,\n client,\n CommandsButton = CommandsButtonDefault,\n compressImageQuality,\n CooldownTimer = CooldownTimerDefault,\n DateHeader = DateHeaderDefault,\n deletedMessagesVisibilityType = 'always',\n disableIfFrozenChannel = true,\n disableKeyboardCompatibleView = false,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch = true,\n doDocUploadRequest,\n doImageUploadRequest,\n doMarkReadRequest,\n doSendMessageRequest,\n doUpdateMessageRequest,\n EmptyStateIndicator = EmptyStateIndicatorDefault,\n enableMessageGroupingByUser = true,\n enableOfflineSupport,\n enforceUniqueReaction = false,\n FileAttachment = FileAttachmentDefault,\n FileAttachmentGroup = FileAttachmentGroupDefault,\n FileAttachmentIcon = FileIconDefault,\n FileUploadPreview = FileUploadPreviewDefault,\n FlatList = FlatListDefault,\n forceAlignMessages,\n formatDate,\n Gallery = GalleryDefault,\n getMessagesGroupStyles,\n Giphy = GiphyDefault,\n giphyEnabled,\n giphyVersion = 'fixed_height',\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n hasCommands = true,\n // If pickDocument isn't available, default to hiding the file picker\n hasFilePicker = pickDocument !== null,\n hasImagePicker = true,\n hideDateSeparators = false,\n hideStickyDateHeader = false,\n ImageUploadPreview = ImageUploadPreviewDefault,\n initialScrollToFirstUnreadMessage = false,\n initialValue,\n InlineDateSeparator = InlineDateSeparatorDefault,\n InlineUnreadIndicator = InlineUnreadIndicatorDefault,\n Input,\n InputButtons = InputButtonsDefault,\n InputEditingStateHeader = InputEditingStateHeaderDefault,\n InputGiphySearch = InputGiphyCommandInputDefault,\n InputReplyStateHeader = InputReplyStateHeaderDefault,\n isAttachmentEqual,\n keyboardBehavior,\n KeyboardCompatibleView = KeyboardCompatibleViewDefault,\n keyboardVerticalOffset,\n legacyImageViewerSwipeBehaviour = false,\n LoadingErrorIndicator = LoadingErrorIndicatorDefault,\n LoadingIndicator = LoadingIndicatorDefault,\n loadingMore: loadingMoreProp,\n loadingMoreRecent: loadingMoreRecentProp,\n ImageLoadingFailedIndicator = ImageLoadingFailedIndicatorDefault,\n ImageLoadingIndicator = ImageLoadingIndicatorDefault,\n markdownRules,\n maxMessageLength: maxMessageLengthProp,\n maxNumberOfFiles = 10,\n maxTimeBetweenGroupedMessages,\n mentionAllAppUsersEnabled = false,\n mentionAllAppUsersQuery,\n members,\n Message = MessageDefault,\n messageActions,\n MessageAvatar = MessageAvatarDefault,\n MessageContent = MessageContentDefault,\n messageContentOrder = ['quoted_reply', 'gallery', 'files', 'text', 'attachments'],\n MessageDeleted = MessageDeletedDefault,\n MessageFooter = MessageFooterDefault,\n MessageHeader,\n messageId,\n MessageList = MessageListDefault,\n MessagePinnedHeader = MessagePinnedHeaderDefault,\n MessageReplies = MessageRepliesDefault,\n MessageRepliesAvatars = MessageRepliesAvatarsDefault,\n messages,\n MessageSimple = MessageSimpleDefault,\n MessageStatus = MessageStatusDefault,\n MessageSystem = MessageSystemDefault,\n MessageText,\n MoreOptionsButton = MoreOptionsButtonDefault,\n myMessageTheme,\n newMessageStateUpdateThrottleInterval = defaultThrottleInterval,\n NetworkDownIndicator = NetworkDownIndicatorDefault,\n numberOfLines = 5,\n onChangeText,\n onLongPressMessage,\n overrideOwnCapabilities,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList = OverlayReactionListDefault,\n ReactionList = ReactionListDefault,\n read,\n Reply = ReplyDefault,\n ScrollToBottomButton = ScrollToBottomButtonDefault,\n selectReaction,\n SendButton = SendButtonDefault,\n SendMessageDisallowedIndicator = SendMessageDisallowedIndicatorDefault,\n sendImageAsync = false,\n setInputRef,\n setMembers,\n setMessages,\n setRead,\n setThreadMessages,\n setTyping,\n setWatcherCount,\n setWatchers,\n shouldSyncChannel,\n ShowThreadMessageInChannelButton = ShowThreadMessageInChannelButtonDefault,\n stateUpdateThrottleInterval = defaultThrottleInterval,\n StickyHeader,\n supportedReactions = reactionData,\n t,\n thread: threadProps,\n threadList,\n threadMessages,\n typing,\n TypingIndicator = TypingIndicatorDefault,\n TypingIndicatorContainer = TypingIndicatorContainerDefault,\n UploadProgressIndicator = UploadProgressIndicatorDefault,\n UrlPreview = CardDefault,\n VideoThumbnail = VideoThumbnailDefault,\n watcherCount,\n watchers,\n } = props;\n\n const {\n theme: {\n channel: { selectChannel },\n colors: { black },\n },\n } = useTheme();\n const [deleted, setDeleted] = useState(false);\n const [editing, setEditing] = useState<boolean | MessageType<StreamChatGenerics>>(false);\n const [error, setError] = useState<Error | boolean>(false);\n const [hasMore, setHasMore] = useState(true);\n const [lastRead, setLastRead] = useState<ChannelContextValue<StreamChatGenerics>['lastRead']>();\n const [loading, setLoading] = useState(!channel?.state.messages.length);\n const [loadingMore, setLoadingMore] = useState(false);\n\n const [loadingMoreRecent, setLoadingMoreRecent] = useState(false);\n const [quotedMessage, setQuotedMessage] =\n useState<boolean | MessageType<StreamChatGenerics>>(false);\n const [thread, setThread] = useState<ThreadContextValue<StreamChatGenerics>['thread']>(\n threadProps || null,\n );\n const [threadHasMore, setThreadHasMore] = useState(true);\n const [threadLoadingMore, setThreadLoadingMore] = useState(false);\n\n const [syncingChannel, setSyncingChannel] = useState(false);\n\n /**\n * Flag to track if we know for sure that there are no more recent messages to load.\n * This is necessary to avoid unnecessary api calls to load recent messages on pagination.\n */\n const [hasNoMoreRecentMessagesToLoad, setHasNoMoreRecentMessagesToLoad] = useState(true);\n\n const { setTargetedMessage, targetedMessage } = useTargetedMessage();\n\n const channelId = channel?.id || '';\n useEffect(() => {\n const initChannel = () => {\n if (!channel || !shouldSyncChannel || channel.offlineMode) return;\n /**\n * Loading channel at first unread message requires channel to be initialized in the first place,\n * since we use read state on channel to decide what offset to load channel at.\n * Also there is no use case from UX perspective, why one would need loading uninitialized channel at particular message.\n * If the channel is not initiated, then we need to do channel.watch, which is more expensive for backend than channel.query.\n */\n if (!channel.initialized) {\n loadChannel();\n return;\n }\n\n if (messageId) {\n loadChannelAroundMessage({ messageId });\n return;\n }\n\n if (\n initialScrollToFirstUnreadMessage &&\n channel.countUnread() > scrollToFirstUnreadThreshold\n ) {\n loadChannelAtFirstUnreadMessage();\n } else {\n loadChannel();\n }\n };\n\n initChannel();\n\n return () => {\n copyChannelState.cancel();\n copyReadState.cancel();\n copyTypingState.cancel();\n loadMoreFinished.cancel();\n loadMoreThreadFinished.cancel();\n };\n }, [channelId, messageId]);\n\n const threadPropsExists = !!threadProps;\n useEffect(() => {\n if (threadProps && shouldSyncChannel) {\n setThread(threadProps);\n if (channel && threadProps?.id) {\n setThreadMessages(channel.state.threads?.[threadProps.id] || []);\n }\n } else {\n setThread(null);\n }\n }, [threadPropsExists, shouldSyncChannel]);\n\n const handleAppBackground = useCallback(() => {\n const channelData = channel.data as\n | Extract<typeof channel.data, { own_capabilities: string[] }>\n | undefined;\n if (channelData?.own_capabilities?.includes('send-typing-events')) {\n channel.sendEvent({\n parent_id: thread?.id,\n type: 'typing.stop',\n } as StreamEvent<StreamChatGenerics>);\n }\n }, [thread?.id, channelId]);\n\n useAppStateListener(undefined, handleAppBackground);\n\n /**\n * CHANNEL CONSTANTS\n */\n const isAdmin = client?.user?.role === 'admin' || channel?.state.membership.role === 'admin';\n\n const isModerator =\n channel?.state.membership.role === 'channel_moderator' ||\n channel?.state.membership.role === 'moderator';\n\n const isOwner = channel?.state.membership.role === 'owner';\n\n /**\n * CHANNEL METHODS\n */\n const markRead: ChannelContextValue<StreamChatGenerics>['markRead'] = useRef(\n throttle(\n () => {\n if (!channel || channel?.disconnected || !clientChannelConfig?.read_events) {\n return;\n }\n\n if (doMarkReadRequest) {\n doMarkReadRequest(channel);\n } else {\n logChatPromiseExecution(channel.markRead(), 'mark read');\n }\n },\n defaultThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyMessagesState = useRef(\n throttle(\n () => {\n if (channel) {\n setMessages([...channel.state.messages]);\n }\n },\n newMessageStateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyTypingState = useRef(\n throttle(\n () => {\n if (channel) {\n setTyping({ ...channel.state.typing });\n }\n },\n stateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyReadState = useRef(\n throttle(\n () => {\n if (channel) {\n setRead({ ...channel.state.read });\n }\n },\n stateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyChannelState = useRef(\n throttle(\n () => {\n setLoading(false);\n if (channel) {\n setMembers({ ...channel.state.members });\n setMessages([...channel.state.messages]);\n setRead({ ...channel.state.read });\n setTyping({ ...channel.state.typing });\n setWatcherCount(channel.state.watcher_count);\n setWatchers({ ...channel.state.watchers });\n }\n },\n stateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n // subscribe to specific channel events\n useEffect(() => {\n const channelSubscriptions: Array<ReturnType<ChannelType['on']>> = [];\n if (channel && shouldSyncChannel) {\n channelSubscriptions.push(channel.on('message.new', copyMessagesState));\n channelSubscriptions.push(channel.on('message.read', copyReadState));\n channelSubscriptions.push(channel.on('typing.start', copyTypingState));\n channelSubscriptions.push(channel.on('typing.stop', copyTypingState));\n }\n return () => {\n channelSubscriptions.forEach((s) => s.unsubscribe());\n };\n }, [channelId, shouldSyncChannel]);\n\n // subscribe to the generic all channel event\n useEffect(() => {\n const handleEvent: EventHandler<StreamChatGenerics> = (event) => {\n if (shouldSyncChannel) {\n if (thread) {\n const updatedThreadMessages =\n (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;\n setThreadMessages(updatedThreadMessages);\n }\n\n if (channel && thread && event.message?.id === thread.id) {\n const updatedThread = channel.state.formatMessage(event.message);\n setThread(updatedThread);\n }\n\n // only update channel state if the events are not the previously subscribed useEffect's subscription events\n if (\n channel &&\n event.type !== 'message.new' &&\n event.type !== 'message.read' &&\n event.type !== 'typing.start' &&\n event.type !== 'typing.stop'\n ) {\n copyChannelState();\n }\n }\n };\n const { unsubscribe } = channel.on(handleEvent);\n return unsubscribe;\n }, [channelId, thread?.id, shouldSyncChannel]);\n\n // subscribe to channel.deleted event\n useEffect(() => {\n const { unsubscribe } = client.on('channel.deleted', (event) => {\n if (event.cid === channel?.cid) {\n setDeleted(true);\n }\n });\n\n return unsubscribe;\n }, [channelId]);\n\n const channelQueryCallRef = useRef(\n async (\n queryCall: () => Promise<void>,\n onAfterQueryCall: (() => void) | undefined = undefined,\n ) => {\n setError(false);\n try {\n await queryCall();\n setLastRead(new Date());\n setHasMore(true);\n copyChannelState();\n onAfterQueryCall?.();\n } catch (err) {\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoading(false);\n setLastRead(new Date());\n }\n },\n );\n\n /**\n * Loads channel at first unread message.\n */\n const loadChannelAtFirstUnreadMessage = () => {\n if (!channel) return;\n let unreadMessageIdToScrollTo: string | undefined;\n // query for messages around the last read date\n return channelQueryCallRef.current(\n async () => {\n setLoading(true);\n const lastReadDate = channel.lastRead();\n // if last read date is present we can just fetch messages around that date\n // last read date not being present is an edge case if somewhere the user of SDK deletes the read state (this will usually never happen)\n if (lastReadDate) {\n setHasNoMoreRecentMessagesToLoad(false); // we are jumping to a message, hence we do not know for sure anymore if there are no more recent messages\n // get totally 30 messages... max 15 before last read date and max 15 after last read date\n // ref: https://github.com/GetStream/chat/pull/2588\n await channel.query(\n {\n messages: {\n created_at_around: lastReadDate,\n limit: 30,\n },\n },\n 'new',\n );\n unreadMessageIdToScrollTo = channel.state.messages.find(\n (m) => lastReadDate < m.created_at,\n )?.id;\n } else {\n // we just load the latest messages (25 is the default) and we cant scroll to first unread message\n await channel.state.loadMessageIntoState('latest');\n }\n setLoading(false);\n },\n () => {\n if (unreadMessageIdToScrollTo) {\n setTargetedMessage(unreadMessageIdToScrollTo);\n }\n },\n );\n };\n\n /**\n * Loads channel around a specific message\n *\n * @param messageId If undefined, channel will be loaded at most recent message.\n */\n const loadChannelAroundMessage: ChannelContextValue<StreamChatGenerics>['loadChannelAroundMessage'] =\n ({ messageId }) =>\n channelQueryCallRef.current(\n async () => {\n setHasNoMoreRecentMessagesToLoad(false); // we are jumping to a message, hence we do not know for sure anymore if there are no more recent messages\n setLoading(true);\n if (messageId) {\n await channel.state.loadMessageIntoState(messageId);\n } else {\n await channel.state.loadMessageIntoState('latest');\n channel.state.setIsUpToDate(true);\n }\n setLoading(false);\n },\n () => {\n if (messageId) {\n setTargetedMessage(messageId);\n }\n },\n );\n\n /**\n * @deprecated use loadChannelAroundMessage instead\n *\n * Loads channel at specific message\n *\n * @param messageId If undefined, channel will be loaded at most recent message.\n * @param before Number of message to query before messageId\n * @param after Number of message to query after messageId\n */\n const loadChannelAtMessage: ChannelContextValue<StreamChatGenerics>['loadChannelAtMessage'] = ({\n after = 2,\n before = 30,\n messageId,\n }) =>\n channelQueryCallRef.current(async () => {\n await queryAtMessage({ after, before, messageId });\n\n if (messageId) {\n setTargetedMessage(messageId);\n }\n });\n\n const loadChannel = () =>\n channelQueryCallRef.current(async () => {\n if (!channel?.initialized || !channel.state.isUpToDate) {\n await channel?.watch();\n setHasNoMoreRecentMessagesToLoad(true);\n channel?.state.setIsUpToDate(true);\n } else {\n await channel.state.loadMessageIntoState('latest');\n }\n return;\n });\n\n const reloadThread = async () => {\n if (!channel || !thread?.id) return;\n setThreadLoadingMore(true);\n try {\n const parentID = thread.id;\n\n const limit = 50;\n channel.state.threads[parentID] = [];\n const queryResponse = await channel.getReplies(parentID, {\n limit,\n });\n\n const updatedHasMore = queryResponse.messages.length === limit;\n const updatedThreadMessages = channel.state.threads[parentID] || [];\n loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);\n const { messages } = await channel.getMessagesById([parentID]);\n const [threadMessage] = messages;\n if (threadMessage) {\n const formattedMessage = channel.state.formatMessage(threadMessage);\n setThread(formattedMessage);\n }\n } catch (err) {\n console.warn('Thread loading request failed with error', err);\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setThreadLoadingMore(false);\n throw err;\n }\n };\n\n const resyncChannel = async () => {\n if (!channel || syncingChannel) return;\n setSyncingChannel(true);\n\n setError(false);\n try {\n /**\n * Allow a buffer of 30 new messages, so that MessageList won't move its scroll position,\n * giving smooth user experience.\n */\n const state = await channel.watch({\n messages: {\n limit: messages.length + 30,\n },\n });\n\n const oldListTopMessage = messages[0];\n const oldListTopMessageId = messages[0]?.id;\n const oldListBottomMessage = messages[messages.length - 1];\n\n const newListTopMessage = state.messages[0];\n const newListBottomMessage = state.messages[state.messages.length - 1];\n\n if (\n !oldListTopMessage || // previous list was empty\n !oldListBottomMessage || // previous list was empty\n !newListTopMessage || // new list is truncated\n !newListBottomMessage // new list is truncated\n ) {\n /** Channel was truncated */\n channel.state.clearMessages();\n channel.state.setIsUpToDate(true);\n channel.state.addMessagesSorted(state.messages);\n channel.state.addPinnedMessages(state.pinned_messages);\n\n copyChannelState();\n return;\n }\n\n const parseMessage = (message: typeof oldListTopMessage) =>\n ({\n ...message,\n created_at: message.created_at.toString(),\n pinned_at: message.pinned_at?.toString(),\n updated_at: message.updated_at?.toString(),\n } as unknown as MessageResponse<StreamChatGenerics>);\n\n const failedMessages = messages\n .filter((message) => message.status === MessageStatusTypes.FAILED)\n .map(parseMessage);\n\n const failedThreadMessages = thread\n ? threadMessages\n .filter((message) => message.status === MessageStatusTypes.FAILED)\n .map(parseMessage)\n : [];\n\n const oldListTopMessageCreatedAt = oldListTopMessage.created_at;\n const oldListBottomMessageCreatedAt = oldListBottomMessage.created_at;\n const newListTopMessageCreatedAt = newListTopMessage.created_at\n ? new Date(newListTopMessage.created_at)\n : new Date();\n const newListBottomMessageCreatedAt = newListBottomMessage?.created_at\n ? new Date(newListBottomMessage.created_at)\n : new Date();\n\n let finalMessages = [];\n\n if (\n oldListTopMessage &&\n oldListTopMessageCreatedAt &&\n oldListBottomMessageCreatedAt &&\n newListTopMessageCreatedAt < oldListTopMessageCreatedAt &&\n newListBottomMessageCreatedAt >= oldListBottomMessageCreatedAt\n ) {\n const index = state.messages.findIndex((message) => message.id === oldListTopMessageId);\n finalMessages = state.messages.slice(index);\n } else {\n finalMessages = state.messages;\n }\n\n setHasNoMoreRecentMessagesToLoad(true);\n channel.state.setIsUpToDate(true);\n channel.state.clearMessages();\n channel.state.addMessagesSorted(finalMessages);\n channel.state.addPinnedMessages(state.pinned_messages);\n setHasMore(true);\n copyChannelState();\n\n if (failedMessages.length) {\n channel.state.addMessagesSorted(failedMessages);\n copyChannelState();\n }\n\n await reloadThread();\n\n if (thread && failedThreadMessages.length) {\n channel.state.addMessagesSorted(failedThreadMessages);\n setThreadMessages([...channel.state.threads[thread.id]]);\n }\n } catch (err) {\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoading(false);\n }\n\n setSyncingChannel(false);\n };\n\n // resync channel is added to ref so that it can be used in useEffect without adding it as a dependency\n const resyncChannelRef = useRef(resyncChannel);\n resyncChannelRef.current = resyncChannel;\n\n useEffect(() => {\n const connectionChangedHandler = () => {\n if (shouldSyncChannel) {\n resyncChannelRef.current();\n }\n };\n let connectionChangedSubscription: ReturnType<ChannelType['on']>;\n\n if (enableOfflineSupport) {\n connectionChangedSubscription = DBSyncManager.onSyncStatusChange(connectionChangedHandler);\n } else {\n connectionChangedSubscription = client.on('connection.changed', (event) => {\n if (event.online) {\n connectionChangedHandler();\n }\n });\n }\n return () => {\n connectionChangedSubscription.unsubscribe();\n };\n }, [enableOfflineSupport, shouldSyncChannel]);\n\n const reloadChannel = () =>\n channelQueryCallRef.current(async () => {\n setLoading(true);\n await channel.state.loadMessageIntoState('latest');\n setLoading(false);\n setHasNoMoreRecentMessagesToLoad(true);\n channel?.state.setIsUpToDate(true);\n });\n\n /**\n * @deprecated\n * Makes a query to load messages at particular message id.\n *\n * @param messageId Targeted message id\n * @param before Number of messages to load before messageId\n * @param after Number of messages to load after messageId\n */\n const queryAtMessage = async ({\n after = 10,\n before = 10,\n messageId,\n }: Parameters<ChannelContextValue<StreamChatGenerics>['loadChannelAtMessage']>[0]) => {\n if (!channel) return;\n channel.state.setIsUpToDate(false);\n channel.state.clearMessages();\n setMessages([...channel.state.messages]);\n if (!messageId) {\n await channel.query({\n messages: {\n limit: before,\n },\n watch: true,\n });\n\n channel.state.setIsUpToDate(true);\n return;\n }\n\n await queryBeforeMessage(messageId, before);\n await queryAfterMessage(messageId, after);\n };\n\n /**\n * @deprecated\n * Makes a query to load messages before particular message id.\n *\n * @param messageId Targeted message id\n * @param limit Number of messages to load\n */\n const queryBeforeMessage = async (messageId: string, limit = 5) => {\n if (!channel) return;\n\n await channel.query({\n messages: {\n id_lt: messageId,\n limit,\n },\n watch: true,\n });\n\n channel.state.setIsUpToDate(false);\n };\n\n /**\n * @deprecated\n * Makes a query to load messages later than particular message id.\n *\n * @param messageId Targeted message id\n * @param limit Number of messages to load.\n */\n const queryAfterMessage = async (messageId: string, limit = 5) => {\n if (!channel) return;\n const state = await channel.query({\n messages: {\n id_gte: messageId,\n limit,\n },\n watch: true,\n });\n\n if (state.messages.length < limit) {\n channel.state.setIsUpToDate(true);\n } else {\n channel.state.setIsUpToDate(false);\n }\n };\n\n // In case the channel is disconnected which may happen when channel is deleted,\n // underlying js client throws an error. Following function ensures that Channel component\n // won't result in error in such a case.\n const getChannelConfigSafely = () => {\n try {\n return channel?.getConfig();\n } catch (_) {\n return null;\n }\n };\n\n /**\n * Channel configs for use in disabling local functionality.\n * Nullish coalescing is used to give first priority to props to override\n * the server settings. Then priority to server settings to override defaults.\n */\n const clientChannelConfig = getChannelConfigSafely();\n\n /**\n * MESSAGE METHODS\n */\n\n const updateMessage: MessagesContextValue<StreamChatGenerics>['updateMessage'] = (\n updatedMessage,\n extraState = {},\n ) => {\n if (channel) {\n channel.state.addMessageSorted(updatedMessage, true);\n if (thread && updatedMessage.parent_id) {\n extraState.threadMessages = channel.state.threads[updatedMessage.parent_id] || [];\n setThreadMessages(extraState.threadMessages);\n }\n\n setMessages([...channel.state.messages]);\n }\n };\n\n const replaceMessage = (\n oldMessage: MessageResponse<StreamChatGenerics>,\n newMessage: MessageResponse<StreamChatGenerics>,\n ) => {\n if (channel) {\n channel.state.removeMessage(oldMessage);\n channel.state.addMessageSorted(newMessage, true);\n if (thread && newMessage.parent_id) {\n const threadMessages = channel.state.threads[newMessage.parent_id] || [];\n setThreadMessages(threadMessages);\n }\n setMessages(channel.state.messages);\n }\n };\n\n const createMessagePreview = ({\n attachments,\n mentioned_users,\n parent_id,\n text,\n ...extraFields\n }: Partial<StreamMessage<StreamChatGenerics>>) => {\n // Exclude following properties from message.user within message preview,\n // since they could be long arrays and have no meaning as sender of message.\n // Storing such large value within user's table may cause sqlite queries to crash.\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { channel_mutes, devices, mutes, ...messageUser } = client.user;\n\n const preview = {\n __html: text,\n attachments,\n created_at: new Date(),\n html: text,\n id: `${client.userID}-${generateRandomId()}`,\n mentioned_users:\n mentioned_users?.map((userId) => ({\n id: userId,\n })) || [],\n parent_id,\n reactions: [],\n status: MessageStatusTypes.SENDING,\n text,\n type: 'regular',\n user: {\n id: client.userID,\n ...messageUser,\n },\n ...extraFields,\n } as unknown as MessageResponse<StreamChatGenerics>;\n\n /**\n * This is added to the message for local rendering prior to the message\n * being returned from the backend, it is removed when the message is sent\n * as quoted_message is a reserved field.\n */\n if (preview.quoted_message_id) {\n const quotedMessage = messages.find((message) => message.id === preview.quoted_message_id);\n\n preview.quoted_message =\n quotedMessage as MessageResponse<StreamChatGenerics>['quoted_message'];\n }\n return preview;\n };\n\n const uploadPendingAttachments = async (message: MessageResponse<StreamChatGenerics>) => {\n const updatedMessage = { ...message };\n if (updatedMessage.attachments?.length) {\n for (let i = 0; i < updatedMessage.attachments?.length; i++) {\n const attachment = updatedMessage.attachments[i];\n const file = attachment.originalFile;\n // check if image_url is not a remote url\n if (\n attachment.type === 'image' &&\n file?.uri &&\n attachment.image_url &&\n isLocalUrl(attachment.image_url)\n ) {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI =\n Platform.OS === 'ios' && file.id && (await getLocalAssetUri(file.id));\n const uri = localAssetURI || file.uri || '';\n const filename = file.name ?? uri.replace(/^(file:\\/\\/|content:\\/\\/)/, '');\n const contentType = lookup(filename) || 'multipart/form-data';\n\n const uploadResponse = doImageUploadRequest\n ? await doImageUploadRequest(file, channel)\n : await channel.sendImage(uri, filename, contentType);\n\n attachment.image_url = uploadResponse.file;\n delete attachment.originalFile;\n\n dbApi.updateMessage({\n message: { ...updatedMessage, cid: channel.cid },\n });\n }\n\n if (\n (attachment.type === 'file' ||\n attachment.type === 'audio' ||\n attachment.type === 'video') &&\n attachment.asset_url &&\n isLocalUrl(attachment.asset_url) &&\n file?.uri\n ) {\n const response = doDocUploadRequest\n ? await doDocUploadRequest(file, channel)\n : await channel.sendFile(file.uri, file.name, file.type);\n attachment.asset_url = response.file;\n if (response.thumb_url) {\n attachment.thumb_url = response.thumb_url;\n }\n delete attachment.originalFile;\n dbApi.updateMessage({\n message: { ...updatedMessage, cid: channel.cid },\n });\n }\n }\n }\n\n return updatedMessage;\n };\n\n const sendMessageRequest = async (\n message: MessageResponse<StreamChatGenerics>,\n retrying?: boolean,\n ) => {\n try {\n const updatedMessage = await uploadPendingAttachments(message);\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n __html,\n attachments,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n created_at,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n deleted_at,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n html,\n id,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n latest_reactions,\n mentioned_users,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n own_reactions,\n parent_id,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n quoted_message,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n reaction_counts,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n reactions,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n status,\n text,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n type,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updated_at,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n user,\n ...extraFields\n } = updatedMessage;\n if (!channel.id) return;\n\n const mentionedUserIds = mentioned_users?.map((user) => user.id) || [];\n\n const messageData = {\n attachments,\n id,\n mentioned_users: mentionedUserIds,\n parent_id,\n text: patchMessageTextCommand(text ?? '', mentionedUserIds),\n ...extraFields,\n } as StreamMessage<StreamChatGenerics>;\n\n let messageResponse = {} as SendMessageAPIResponse<StreamChatGenerics>;\n if (doSendMessageRequest) {\n messageResponse = await doSendMessageRequest(channel?.cid || '', messageData);\n } else if (channel) {\n messageResponse = await channel.sendMessage(messageData);\n }\n\n if (messageResponse.message) {\n messageResponse.message.status = MessageStatusTypes.RECEIVED;\n\n if (enableOfflineSupport) {\n dbApi.updateMessage({\n message: { ...messageResponse.message, cid: channel.cid },\n });\n }\n if (retrying) {\n replaceMessage(message, messageResponse.message);\n } else {\n updateMessage(messageResponse.message);\n }\n }\n } catch (err) {\n console.log(err);\n message.status = MessageStatusTypes.FAILED;\n updateMessage({ ...message, cid: channel.cid });\n\n if (enableOfflineSupport) {\n dbApi.updateMessage({\n message: { ...message, cid: channel.cid },\n });\n }\n }\n };\n\n const sendMessage: InputMessageInputContextValue<StreamChatGenerics>['sendMessage'] = async (\n message,\n ) => {\n if (channel?.state?.filterErrorMessages) {\n channel.state.filterErrorMessages();\n }\n\n const messagePreview = createMessagePreview({\n ...message,\n attachments: message.attachments || [],\n });\n\n if (!channel?.state.isUpToDate) {\n await reloadChannel();\n }\n\n updateMessage(messagePreview, {\n commands: [],\n messageInput: '',\n });\n\n if (enableOfflineSupport) {\n // While sending a message, we add the message to local db with failed status, so that\n // if app gets closed before message gets sent and next time user opens the app\n // then user can see that message in failed state and can retry.\n // If succesfull, it will be updated with received status.\n dbApi.upsertMessages({\n messages: [{ ...messagePreview, cid: channel.cid, status: MessageStatusTypes.FAILED }],\n });\n }\n\n await sendMessageRequest(messagePreview);\n };\n\n const retrySendMessage: MessagesContextValue<StreamChatGenerics>['retrySendMessage'] = async (\n message,\n ) => {\n const statusPendingMessage = {\n ...message,\n status: MessageStatusTypes.SENDING,\n };\n\n updateMessage(statusPendingMessage);\n\n await sendMessageRequest(statusPendingMessage, true);\n };\n\n // hard limit to prevent you from scrolling faster than 1 page per 2 seconds\n const loadMoreFinished = useRef(\n debounce(\n (updatedHasMore: boolean, newMessages: ChannelState<StreamChatGenerics>['messages']) => {\n setLoadingMore(false);\n setError(false);\n setHasMore(updatedHasMore);\n setMessages(newMessages);\n },\n defaultDebounceInterval,\n debounceOptions,\n ),\n ).current;\n\n const loadMore: PaginatedMessageListContextValue<StreamChatGenerics>['loadMore'] = async (\n limit = 20,\n ) => {\n if (loadingMore || hasMore === false) {\n return;\n }\n setLoadingMore(true);\n\n if (!messages.length) {\n return setLoadingMore(false);\n }\n\n const oldestMessage = messages && messages[0];\n\n if (oldestMessage && oldestMessage.status !== MessageStatusTypes.RECEIVED) {\n return setLoadingMore(false);\n }\n\n const oldestID = oldestMessage && oldestMessage.id;\n\n try {\n if (channel) {\n const queryResponse = await channel.query({\n messages: { id_lt: oldestID, limit },\n });\n\n const updatedHasMore = queryResponse.messages.length === limit;\n loadMoreFinished(updatedHasMore, channel.state.messages);\n }\n } catch (err) {\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoadingMore(false);\n throw err;\n }\n };\n\n const loadMoreRecent: PaginatedMessageListContextValue<StreamChatGenerics>['loadMoreRecent'] =\n async (limit = 5) => {\n if (hasNoMoreRecentMessagesToLoad) {\n return;\n }\n\n setLoadingMoreRecent(true);\n\n const recentMessage = messages[messages.length - 1];\n\n if (recentMessage?.status !== MessageStatusTypes.RECEIVED) {\n setLoadingMoreRecent(false);\n return;\n }\n\n try {\n if (channel) {\n const state = await channel.query({\n messages: {\n id_gte: recentMessage.id,\n limit,\n },\n watch: true,\n });\n setHasNoMoreRecentMessagesToLoad(state.messages.length < limit);\n loadMoreRecentFinished(channel.state.messages);\n }\n } catch (err) {\n console.warn('Message pagination request failed with error', err);\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoadingMoreRecent(false);\n throw err;\n }\n };\n\n // hard limit to prevent you from scrolling faster than 1 page per 2 seconds\n const loadMoreRecentFinished = useRef(\n debounce(\n (newMessages: ChannelState<StreamChatGenerics>['messages']) => {\n setLoadingMoreRecent(false);\n setMessages(newMessages);\n setError(false);\n },\n defaultDebounceInterval,\n debounceOptions,\n ),\n ).current;\n\n const editMessage: InputMessageInputContextValue<StreamChatGenerics>['editMessage'] = (\n updatedMessage,\n ) =>\n doUpdateMessageRequest\n ? doUpdateMessageRequest(channel?.cid || '', updatedMessage)\n : client.updateMessage(updatedMessage);\n\n const setEditingState: MessagesContextValue<StreamChatGenerics>['setEditingState'] = (\n message,\n ) => {\n setEditing(message);\n };\n\n const setQuotedMessageState: MessagesContextValue<StreamChatGenerics>['setQuotedMessageState'] = (\n message,\n ) => {\n setQuotedMessage(message);\n };\n\n const clearEditingState: InputMessageInputContextValue<StreamChatGenerics>['clearEditingState'] =\n () => setEditing(false);\n\n const clearQuotedMessageState: InputMessageInputContextValue<StreamChatGenerics>['clearQuotedMessageState'] =\n () => setQuotedMessage(false);\n\n const removeMessage: MessagesContextValue<StreamChatGenerics>['removeMessage'] = (message) => {\n if (channel) {\n channel.state.removeMessage(message);\n setMessages(channel.state.messages);\n if (thread) {\n setThreadMessages(channel.state.threads[thread.id] || []);\n }\n }\n\n if (enableOfflineSupport) {\n dbApi.deleteMessage({\n id: message.id,\n });\n }\n };\n\n const sendReaction = async (type: string, messageId: string) => {\n if (!channel?.id || !client.user) {\n throw new Error('Channel has not been initialized');\n }\n\n const payload: Parameters<ChannelClass<StreamChatGenerics>['sendReaction']> = [\n messageId,\n {\n type,\n } as Reaction<StreamChatGenerics>,\n { enforce_unique: enforceUniqueReaction },\n ];\n\n if (!enableOfflineSupport) {\n await channel.sendReaction(...payload);\n return;\n }\n\n addReactionToLocalState<StreamChatGenerics>({\n channel,\n enforceUniqueReaction,\n messageId,\n reactionType: type,\n user: client.user,\n });\n\n setMessages(channel.state.messages);\n\n await DBSyncManager.queueTask<StreamChatGenerics>({\n client,\n task: {\n channelId: channel.id,\n channelType: channel.type,\n messageId,\n payload,\n type: 'send-reaction',\n },\n });\n };\n const deleteMessage: MessagesContextValue<StreamChatGenerics>['deleteMessage'] = async (\n message,\n ) => {\n if (!channel.id) {\n throw new Error('Channel has not been initialized yet');\n }\n\n if (!enableOfflineSupport) {\n await client.deleteMessage(message.id);\n return;\n }\n\n if (message.status === MessageStatusTypes.FAILED) {\n DBSyncManager.dropPendingTasks({ messageId: message.id });\n removeMessage(message);\n } else {\n updateMessage({\n ...message,\n cid: channel.cid,\n deleted_at: new Date().toISOString(),\n type: 'deleted',\n });\n\n const data = await DBSyncManager.queueTask<StreamChatGenerics>({\n client,\n task: {\n channelId: channel.id,\n channelType: channel.type,\n messageId: message.id,\n payload: [message.id],\n type: 'delete-message',\n },\n });\n\n if (data?.message) {\n updateMessage({ ...data.message });\n }\n }\n };\n\n const deleteReaction: MessagesContextValue<StreamChatGenerics>['deleteReaction'] = async (\n type: string,\n messageId: string,\n ) => {\n if (!channel?.id || !client.user) {\n throw new Error('Channel has not been initialized');\n }\n\n const payload: Parameters<ChannelClass['deleteReaction']> = [messageId, type];\n\n if (!enableOfflineSupport) {\n await channel.deleteReaction(...payload);\n return;\n }\n\n removeReactionFromLocalState({\n channel,\n messageId,\n reactionType: type,\n user: client.user,\n });\n\n setMessages(channel.state.messages);\n\n await DBSyncManager.queueTask<StreamChatGenerics>({\n client,\n task: {\n channelId: channel.id,\n channelType: channel.type,\n messageId,\n payload,\n type: 'delete-reaction',\n },\n });\n };\n\n /**\n * THREAD METHODS\n */\n const openThread: ThreadContextValue<StreamChatGenerics>['openThread'] = (message) => {\n const newThreadMessages = message?.id ? channel?.state?.threads[message.id] || [] : [];\n setThread(message);\n setThreadMessages(newThreadMessages);\n };\n\n const closeThread: ThreadContextValue<StreamChatGenerics>['closeThread'] = useCallback(() => {\n setThread(null);\n setThreadMessages([]);\n }, [setThread, setThreadMessages]);\n\n // hard limit to prevent you from scrolling faster than 1 page per 2 seconds\n const loadMoreThreadFinished = useRef(\n debounce(\n (\n newThreadHasMore: boolean,\n updatedThreadMessages: ChannelState<StreamChatGenerics>['threads'][string],\n ) => {\n setThreadHasMore(newThreadHasMore);\n setThreadLoadingMore(false);\n setThreadMessages(updatedThreadMessages);\n },\n defaultDebounceInterval,\n debounceOptions,\n ),\n ).current;\n\n const loadMoreThread: ThreadContextValue<StreamChatGenerics>['loadMoreThread'] = async () => {\n if (threadLoadingMore || !thread?.id) {\n return;\n }\n setThreadLoadingMore(true);\n\n try {\n if (channel) {\n const parentID = thread.id;\n\n /**\n * In the channel is re-initializing, then threads may get wiped out during the process\n * (check `addMessagesSorted` method on channel.state). In those cases, we still want to\n * preserve the messages on active thread, so lets simply copy messages from UI state to\n * `channel.state`.\n */\n channel.state.threads[parentID] = threadMessages;\n const oldestMessageID = threadMessages?.[0]?.id;\n\n const limit = 50;\n const queryResponse = await channel.getReplies(parentID, {\n id_lt: oldestMessageID,\n limit,\n });\n\n const updatedHasMore = queryResponse.messages.length === limit;\n const updatedThreadMessages = channel.state.threads[parentID] || [];\n loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);\n }\n } catch (err) {\n console.warn('Message pagination request failed with error', err);\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setThreadLoadingMore(false);\n throw err;\n }\n };\n\n const ownCapabilitiesContext = useCreateOwnCapabilitiesContext({\n channel,\n overrideCapabilities: overrideOwnCapabilities,\n });\n\n const channelContext = useCreateChannelContext({\n channel,\n disabled: !!channel?.data?.frozen && disableIfFrozenChannel,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n enforceUniqueReaction,\n error,\n giphyEnabled:\n giphyEnabled ??\n !!(clientChannelConfig?.commands || [])?.some((command) => command.name === 'giphy'),\n hideDateSeparators,\n hideStickyDateHeader,\n isAdmin,\n isChannelActive: shouldSyncChannel,\n isModerator,\n isOwner,\n lastRead,\n loadChannelAroundMessage,\n loadChannelAtMessage,\n loading,\n LoadingIndicator,\n markRead,\n maxTimeBetweenGroupedMessages,\n members,\n NetworkDownIndicator,\n read,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setLastRead,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n threadList,\n watcherCount,\n watchers,\n });\n\n const inputMessageInputContext = useCreateInputMessageInputContext<StreamChatGenerics>({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength: maxMessageLengthProp ?? clientChannelConfig?.max_message_length ?? undefined,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n });\n\n const messageListContext = useCreatePaginatedMessageListContext({\n channelId,\n hasMore,\n hasNoMoreRecentMessagesToLoad,\n loadingMore: loadingMoreProp !== undefined ? loadingMoreProp : loadingMore,\n loadingMoreRecent:\n loadingMoreRecentProp !== undefined ? loadingMoreRecentProp : loadingMoreRecent,\n loadMore,\n loadMoreRecent,\n messages,\n setLoadingMore,\n setLoadingMoreRecent,\n });\n\n const messagesContext = useCreateMessagesContext({\n additionalTouchableProps,\n Attachment,\n AttachmentActions,\n AudioAttachment,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n channelId,\n DateHeader,\n deletedMessagesVisibilityType,\n deleteMessage,\n deleteReaction,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n getMessagesGroupStyles,\n Giphy,\n giphyVersion,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n initialScrollToFirstUnreadMessage: !messageId && initialScrollToFirstUnreadMessage, // when messageId is set, we scroll to the messageId instead of first unread\n InlineDateSeparator,\n InlineUnreadIndicator,\n isAttachmentEqual,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessagePinnedHeader,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n myMessageTheme,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n ReactionList,\n removeMessage,\n Reply,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n targetedMessage,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n VideoThumbnail,\n });\n\n const suggestionsContext = {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n };\n\n const threadContext = useCreateThreadContext({\n allowThreadMessagesInChannel,\n closeThread,\n loadMoreThread,\n openThread,\n reloadThread,\n setThreadLoadingMore,\n thread,\n threadHasMore,\n threadLoadingMore,\n threadMessages,\n });\n\n const typingContext = useCreateTypingContext({\n typing,\n });\n\n // TODO: replace the null view with appropriate message. Currently this is waiting a design decision.\n if (deleted) return null;\n\n if (!channel || (error && messages.length === 0)) {\n return <LoadingErrorIndicator error={error} listType='message' retry={reloadChannel} />;\n }\n\n if (!channel?.cid || !channel.watch) {\n return (\n <Text style={[styles.selectChannel, { color: black }, selectChannel]} testID='no-channel'>\n {t('Please select a channel first')}\n </Text>\n );\n }\n\n return (\n <KeyboardCompatibleView\n behavior={keyboardBehavior}\n enabled={!disableKeyboardCompatibleView}\n keyboardVerticalOffset={keyboardVerticalOffset}\n {...additionalKeyboardAvoidingViewProps}\n >\n <ChannelProvider<StreamChatGenerics> value={channelContext}>\n <OwnCapabilitiesProvider value={ownCapabilitiesContext}>\n <TypingProvider<StreamChatGenerics> value={typingContext}>\n <PaginatedMessageListProvider<StreamChatGenerics> value={messageListContext}>\n <MessagesProvider<StreamChatGenerics> value={messagesContext}>\n <ThreadProvider<StreamChatGenerics> value={threadContext}>\n <SuggestionsProvider<StreamChatGenerics> value={suggestionsContext}>\n <MessageInputProvider<StreamChatGenerics> value={inputMessageInputContext}>\n <View style={{ height: '100%' }}>{children}</View>\n </MessageInputProvider>\n </SuggestionsProvider>\n </ThreadProvider>\n </MessagesProvider>\n </PaginatedMessageListProvider>\n </TypingProvider>\n </OwnCapabilitiesProvider>\n </ChannelProvider>\n </KeyboardCompatibleView>\n );\n};\n\nexport type ChannelProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<ChannelPropsWithContext<StreamChatGenerics>, 'channel'>> &\n Pick<ChannelPropsWithContext<StreamChatGenerics>, 'channel'>;\n\n/**\n *\n * The wrapper component for a chat channel. Channel needs to be placed inside a Chat component\n * to receive the StreamChat client instance. MessageList, Thread, and MessageInput must be\n * children of the Channel component to receive the ChannelContext.\n *\n * @example ./Channel.md\n */\nexport const Channel = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChannelProps<StreamChatGenerics>>,\n) => {\n const { client, enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n const shouldSyncChannel = props.thread?.id ? !!props.threadList : true;\n\n const {\n members,\n messages,\n read,\n setMembers,\n setMessages,\n setRead,\n setThreadMessages,\n setTyping,\n setWatcherCount,\n setWatchers,\n threadMessages,\n typing,\n watcherCount,\n watchers,\n } = useChannelState<StreamChatGenerics>(\n props.channel,\n props.threadList ? props.thread?.id : undefined,\n );\n\n return (\n <ChannelWithContext<StreamChatGenerics>\n {...{\n client,\n enableOfflineSupport,\n t,\n }}\n {...props}\n shouldSyncChannel={shouldSyncChannel}\n {...{\n members,\n messages: props.messages || messages,\n read,\n setMembers,\n setMessages,\n setRead,\n setThreadMessages,\n setTyping,\n setWatcherCount,\n setWatchers,\n threadMessages,\n typing,\n watcherCount,\n watchers,\n }}\n />\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_debounce","_interopRequireDefault","_throttle","_mimeTypes","_streamChat","_useCreateChannelContext","_useCreateInputMessageInputContext","_useCreateMessagesContext","_useCreateOwnCapabilitiesContext","_useCreatePaginatedMessageListContext","_useCreateThreadContext","_useCreateTypingContext","_useTargetedMessage2","_ChannelContext","_useChannelState2","_ChatContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_PaginatedMessageListContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_TypingContext","_useAppStateListener","_icons","_native","dbApi","_addReactionToLocalState","_DBSyncManager","_patchMessageTextCommand","_removeReactionFromLocalState","_utils","_Attachment","_AttachmentActions","_AudioAttachment","_Card","_FileAttachment","_FileAttachmentGroup","_FileIcon","_Gallery","_Giphy","_ImageLoadingFailedIndicator","_ImageLoadingIndicator","_VideoThumbnail","_AutoCompleteSuggestionHeader","_AutoCompleteSuggestionItem","_AutoCompleteSuggestionList","_EmptyStateIndicator","_LoadingErrorIndicator","_LoadingIndicator","_KeyboardCompatibleView","_Message","_MessageAvatar","_MessageContent","_MessageDeleted","_MessageFooter","_MessagePinnedHeader","_MessageReplies","_MessageRepliesAvatars","_MessageSimple","_MessageStatus","_ReactionList","_AttachButton","_CommandsButton","_InputEditingStateHeader","_InputGiphySearch","_InputReplyStateHeader","_CooldownTimer","_FileUploadPreview","_ImageUploadPreview","_InputButtons","_MoreOptionsButton","_SendButton","_SendMessageDisallowedIndicator","_ShowThreadMessageInChannelButton","_UploadProgressIndicator","_DateHeader","_InlineDateSeparator","_InlineUnreadIndicator","_MessageList","_MessageSystem","_NetworkDownIndicator","_ScrollToBottomButton","_TypingIndicator","_TypingIndicatorContainer","_OverlayReactionList","_Reply","_excluded","_excluded2","_excluded3","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","selectChannel","fontWeight","padding","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","exports","scrollToFirstUnreadThreshold","defaultThrottleInterval","defaultDebounceInterval","throttleOptions","leading","trailing","debounceOptions","ChannelWithContext","props","_client$user","_channel$data","_ref26","_ref27","additionalKeyboardAvoidingViewProps","additionalTextInputProps","additionalTouchableProps","_props$allowThreadMes","allowThreadMessagesInChannel","_props$AttachButton","AttachButton","AttachButtonDefault","_props$Attachment","Attachment","AttachmentDefault","_props$AttachmentActi","AttachmentActions","AttachmentActionsDefault","_props$AudioAttachmen","AudioAttachment","AudioAttachmentDefault","_props$AutoCompleteSu","AutoCompleteSuggestionHeader","AutoCompleteSuggestionHeaderDefault","_props$AutoCompleteSu2","AutoCompleteSuggestionItem","AutoCompleteSuggestionItemDefault","_props$AutoCompleteSu3","AutoCompleteSuggestionList","AutoCompleteSuggestionListDefault","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","_props$Card","Card","CardDefault","CardCover","CardFooter","CardHeader","channel","children","client","_props$CommandsButton","CommandsButton","CommandsButtonDefault","compressImageQuality","_props$CooldownTimer","CooldownTimer","CooldownTimerDefault","_props$DateHeader","DateHeader","DateHeaderDefault","_props$deletedMessage","deletedMessagesVisibilityType","_props$disableIfFroze","disableIfFrozenChannel","_props$disableKeyboar","disableKeyboardCompatibleView","disableTypingIndicator","_props$dismissKeyboar","dismissKeyboardOnMessageTouch","doDocUploadRequest","doImageUploadRequest","doMarkReadRequest","doSendMessageRequest","doUpdateMessageRequest","_props$EmptyStateIndi","EmptyStateIndicator","EmptyStateIndicatorDefault","_props$enableMessageG","enableMessageGroupingByUser","enableOfflineSupport","_props$enforceUniqueR","enforceUniqueReaction","_props$FileAttachment","FileAttachment","FileAttachmentDefault","_props$FileAttachment2","FileAttachmentGroup","FileAttachmentGroupDefault","_props$FileAttachment3","FileAttachmentIcon","FileIconDefault","_props$FileUploadPrev","FileUploadPreview","FileUploadPreviewDefault","_props$FlatList","FlatList","FlatListDefault","forceAlignMessages","formatDate","_props$Gallery","Gallery","GalleryDefault","getMessagesGroupStyles","_props$Giphy","Giphy","GiphyDefault","giphyEnabled","_props$giphyVersion","giphyVersion","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReaction","handleRetry","handleThreadReply","_props$hasCommands","hasCommands","_props$hasFilePicker","hasFilePicker","pickDocument","_props$hasImagePicker","hasImagePicker","_props$hideDateSepara","hideDateSeparators","_props$hideStickyDate","hideStickyDateHeader","_props$ImageUploadPre","ImageUploadPreview","ImageUploadPreviewDefault","_props$initialScrollT","initialScrollToFirstUnreadMessage","initialValue","_props$InlineDateSepa","InlineDateSeparator","InlineDateSeparatorDefault","_props$InlineUnreadIn","InlineUnreadIndicator","InlineUnreadIndicatorDefault","Input","_props$InputButtons","InputButtons","InputButtonsDefault","_props$InputEditingSt","InputEditingStateHeader","InputEditingStateHeaderDefault","_props$InputGiphySear","InputGiphySearch","InputGiphyCommandInputDefault","_props$InputReplyStat","InputReplyStateHeader","InputReplyStateHeaderDefault","isAttachmentEqual","keyboardBehavior","_props$KeyboardCompat","KeyboardCompatibleView","KeyboardCompatibleViewDefault","keyboardVerticalOffset","_props$legacyImageVie","legacyImageViewerSwipeBehaviour","_props$LoadingErrorIn","LoadingErrorIndicator","LoadingErrorIndicatorDefault","_props$LoadingIndicat","LoadingIndicator","LoadingIndicatorDefault","loadingMoreProp","loadingMore","loadingMoreRecentProp","loadingMoreRecent","_props$ImageLoadingFa","ImageLoadingFailedIndicator","ImageLoadingFailedIndicatorDefault","_props$ImageLoadingIn","ImageLoadingIndicator","ImageLoadingIndicatorDefault","markdownRules","maxMessageLengthProp","maxMessageLength","_props$maxNumberOfFil","maxNumberOfFiles","maxTimeBetweenGroupedMessages","_props$mentionAllAppU","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","members","_props$Message","Message","MessageDefault","messageActions","_props$MessageAvatar","MessageAvatar","MessageAvatarDefault","_props$MessageContent","MessageContent","MessageContentDefault","_props$messageContent","messageContentOrder","_props$MessageDeleted","MessageDeleted","MessageDeletedDefault","_props$MessageFooter","MessageFooter","MessageFooterDefault","MessageHeader","messageId","_props$MessageList","MessageList","MessageListDefault","_props$MessagePinnedH","MessagePinnedHeader","MessagePinnedHeaderDefault","_props$MessageReplies","MessageReplies","MessageRepliesDefault","_props$MessageReplies2","MessageRepliesAvatars","MessageRepliesAvatarsDefault","messages","_props$MessageSimple","MessageSimple","MessageSimpleDefault","_props$MessageStatus","MessageStatus","MessageStatusDefault","_props$MessageSystem","MessageSystem","MessageSystemDefault","MessageText","_props$MoreOptionsBut","MoreOptionsButton","MoreOptionsButtonDefault","myMessageTheme","_props$newMessageStat","newMessageStateUpdateThrottleInterval","_props$NetworkDownInd","NetworkDownIndicator","NetworkDownIndicatorDefault","_props$numberOfLines","numberOfLines","onChangeText","onLongPressMessage","overrideOwnCapabilities","onPressInMessage","onPressMessage","_props$OverlayReactio","OverlayReactionList","OverlayReactionListDefault","_props$ReactionList","ReactionList","ReactionListDefault","read","_props$Reply","Reply","ReplyDefault","_props$ScrollToBottom","ScrollToBottomButton","ScrollToBottomButtonDefault","selectReaction","_props$SendButton","SendButton","SendButtonDefault","_props$SendMessageDis","SendMessageDisallowedIndicator","SendMessageDisallowedIndicatorDefault","_props$sendImageAsync","sendImageAsync","setInputRef","setMembers","setMessages","setRead","setThreadMessages","setTyping","setWatcherCount","setWatchers","shouldSyncChannel","_props$ShowThreadMess","ShowThreadMessageInChannelButton","ShowThreadMessageInChannelButtonDefault","_props$stateUpdateThr","stateUpdateThrottleInterval","StickyHeader","_props$supportedReact","supportedReactions","t","threadProps","thread","threadList","threadMessages","typing","_props$TypingIndicato","TypingIndicator","TypingIndicatorDefault","_props$TypingIndicato2","TypingIndicatorContainer","TypingIndicatorContainerDefault","_props$UploadProgress","UploadProgressIndicator","UploadProgressIndicatorDefault","_props$UrlPreview","UrlPreview","_props$VideoThumbnail","VideoThumbnail","VideoThumbnailDefault","watcherCount","watchers","_useTheme","useTheme","_useTheme$theme","theme","black","colors","_useState","useState","_useState2","_slicedToArray2","deleted","setDeleted","_useState3","_useState4","editing","setEditing","_useState5","_useState6","error","setError","_useState7","_useState8","hasMore","setHasMore","_useState9","_useState10","lastRead","setLastRead","_useState11","state","length","_useState12","loading","setLoading","_useState13","_useState14","setLoadingMore","_useState15","_useState16","setLoadingMoreRecent","_useState17","_useState18","quotedMessage","setQuotedMessage","_useState19","_useState20","setThread","_useState21","_useState22","threadHasMore","setThreadHasMore","_useState23","_useState24","threadLoadingMore","setThreadLoadingMore","_useState25","_useState26","syncingChannel","setSyncingChannel","_useState27","_useState28","hasNoMoreRecentMessagesToLoad","setHasNoMoreRecentMessagesToLoad","_useTargetedMessage","useTargetedMessage","setTargetedMessage","targetedMessage","channelId","id","useEffect","initChannel","offlineMode","initialized","loadChannel","loadChannelAroundMessage","countUnread","loadChannelAtFirstUnreadMessage","copyChannelState","cancel","copyReadState","copyTypingState","loadMoreFinished","loadMoreThreadFinished","threadPropsExists","_channel$state$thread","threads","handleAppBackground","useCallback","_channelData$own_capa","channelData","data","own_capabilities","includes","sendEvent","parent_id","useAppStateListener","undefined","isAdmin","user","role","membership","isModerator","isOwner","markRead","useRef","throttle","disconnected","clientChannelConfig","read_events","logChatPromiseExecution","current","copyMessagesState","_toConsumableArray2","_extends2","watcher_count","channelSubscriptions","push","on","forEach","s","unsubscribe","handleEvent","event","_event$message","updatedThreadMessages","message","updatedThread","formatMessage","_channel$on","_client$on","cid","channelQueryCallRef","_ref","_asyncToGenerator2","_regenerator","mark","_callee","queryCall","onAfterQueryCall","_args","arguments","wrap","_callee$","_context","prev","next","Date","t0","Error","stop","_x","apply","unreadMessageIdToScrollTo","_callee2","lastReadDate","_channel$state$messag","_callee2$","_context2","query","created_at_around","limit","find","m","created_at","loadMessageIntoState","_ref3","_callee3","_callee3$","_context3","setIsUpToDate","loadChannelAtMessage","_ref5","_ref5$after","after","_ref5$before","before","_callee4","_callee4$","_context4","queryAtMessage","_callee5","_callee5$","_context5","isUpToDate","watch","abrupt","reloadThread","_ref8","_callee6","parentID","queryResponse","updatedHasMore","_yield$channel$getMes","_messages","_messages2","threadMessage","formattedMessage","_callee6$","_context6","getReplies","sent","getMessagesById","console","warn","resyncChannel","_ref9","_callee7","_messages$","oldListTopMessage","oldListTopMessageId","oldListBottomMessage","newListTopMessage","newListBottomMessage","parseMessage","failedMessages","failedThreadMessages","oldListTopMessageCreatedAt","oldListBottomMessageCreatedAt","newListTopMessageCreatedAt","newListBottomMessageCreatedAt","finalMessages","index","_callee7$","_context7","clearMessages","addMessagesSorted","addPinnedMessages","pinned_messages","_message$pinned_at","_message$updated_at","toString","pinned_at","updated_at","filter","status","MessageStatusTypes","FAILED","map","findIndex","slice","resyncChannelRef","connectionChangedHandler","connectionChangedSubscription","DBSyncManager","onSyncStatusChange","online","reloadChannel","_callee8","_callee8$","_context8","_ref12","_callee9","_ref11","_ref11$after","_ref11$before","_callee9$","_context9","queryBeforeMessage","queryAfterMessage","_x2","_ref13","_callee10","_args10","_callee10$","_context10","id_lt","_x3","_ref14","_callee11","_args11","_callee11$","_context11","id_gte","_x4","getChannelConfigSafely","getConfig","_","updateMessage","updatedMessage","extraState","addMessageSorted","replaceMessage","oldMessage","newMessage","removeMessage","createMessagePreview","_ref15","attachments","mentioned_users","text","extraFields","_objectWithoutProperties2","_client$user2","channel_mutes","devices","mutes","messageUser","preview","__html","html","userID","generateRandomId","userId","reactions","SENDING","quoted_message_id","quoted_message","uploadPendingAttachments","_ref16","_callee12","_updatedMessage$attac","i","_updatedMessage$attac2","attachment","file","_file$name","localAssetURI","uri","filename","contentType","uploadResponse","response","_callee12$","_context12","originalFile","image_url","isLocalUrl","Platform","OS","getLocalAssetUri","name","replace","lookup","t1","sendImage","asset_url","t2","sendFile","mimeType","thumb_url","_x5","sendMessageRequest","_ref17","_callee13","retrying","_updatedMessage","deleted_at","latest_reactions","own_reactions","reaction_counts","mentionedUserIds","_messageData","messageResponse","_callee13$","_context13","messageData","patchMessageTextCommand","sendMessage","RECEIVED","log","_x6","_x7","_ref18","_callee14","_channel$state","messagePreview","_callee14$","_context14","filterErrorMessages","commands","messageInput","upsertMessages","_x8","retrySendMessage","_ref19","_callee15","statusPendingMessage","_callee15$","_context15","_x9","debounce","newMessages","loadMore","_ref20","_callee16","oldestMessage","oldestID","_args16","_callee16$","_context16","loadMoreRecent","_ref21","_callee17","recentMessage","_args17","_callee17$","_context17","loadMoreRecentFinished","editMessage","setEditingState","setQuotedMessageState","clearEditingState","clearQuotedMessageState","deleteMessage","sendReaction","_ref22","_callee18","payload","_callee18$","_context18","enforce_unique","addReactionToLocalState","reactionType","queueTask","task","channelType","_x10","_x11","_ref23","_callee19","_data","_callee19$","_context19","dropPendingTasks","toISOString","_x12","deleteReaction","_ref24","_callee20","_callee20$","_context20","removeReactionFromLocalState","_x13","_x14","openThread","_channel$state2","newThreadMessages","closeThread","newThreadHasMore","loadMoreThread","_ref25","_callee21","_threadMessages$","oldestMessageID","_callee21$","_context21","ownCapabilitiesContext","useCreateOwnCapabilitiesContext","overrideCapabilities","channelContext","useCreateChannelContext","disabled","frozen","some","command","isChannelActive","inputMessageInputContext","useCreateInputMessageInputContext","max_message_length","messageListContext","useCreatePaginatedMessageListContext","messagesContext","useCreateMessagesContext","suggestionsContext","threadContext","useCreateThreadContext","typingContext","useCreateTypingContext","createElement","listType","retry","__self","__source","fileName","lineNumber","columnNumber","Text","style","color","testID","behavior","enabled","ChannelProvider","value","OwnCapabilitiesProvider","TypingProvider","PaginatedMessageListProvider","MessagesProvider","ThreadProvider","SuggestionsProvider","MessageInputProvider","View","height","Channel","_props$thread","_props$thread2","_useChatContext","useChatContext","_useTranslationContex","useTranslationContext","_useChannelState","useChannelState"],"sources":["Channel.tsx"],"sourcesContent":["import React, { PropsWithChildren, useCallback, useEffect, useRef, useState } from 'react';\nimport { KeyboardAvoidingViewProps, Platform, StyleSheet, Text, View } from 'react-native';\n\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\n\nimport { lookup } from 'mime-types';\nimport {\n Channel as ChannelClass,\n ChannelState,\n Channel as ChannelType,\n EventHandler,\n logChatPromiseExecution,\n MessageResponse,\n Reaction,\n SendMessageAPIResponse,\n StreamChat,\n Event as StreamEvent,\n Message as StreamMessage,\n} from 'stream-chat';\n\nimport { useCreateChannelContext } from './hooks/useCreateChannelContext';\n\nimport { useCreateInputMessageInputContext } from './hooks/useCreateInputMessageInputContext';\n\nimport { useCreateMessagesContext } from './hooks/useCreateMessagesContext';\n\nimport { useCreateOwnCapabilitiesContext } from './hooks/useCreateOwnCapabilitiesContext';\nimport { useCreatePaginatedMessageListContext } from './hooks/useCreatePaginatedMessageListContext';\n\nimport { useCreateThreadContext } from './hooks/useCreateThreadContext';\n\nimport { useCreateTypingContext } from './hooks/useCreateTypingContext';\n\nimport { useTargetedMessage } from './hooks/useTargetedMessage';\n\nimport { ChannelContextValue, ChannelProvider } from '../../contexts/channelContext/ChannelContext';\nimport type { UseChannelStateValue } from '../../contexts/channelsStateContext/useChannelState';\nimport { useChannelState } from '../../contexts/channelsStateContext/useChannelState';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n InputMessageInputContextValue,\n MessageInputProvider,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n MessagesProvider,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OwnCapabilitiesContextValue,\n OwnCapabilitiesProvider,\n} from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n PaginatedMessageListContextValue,\n PaginatedMessageListProvider,\n} from '../../contexts/paginatedMessageListContext/PaginatedMessageListContext';\nimport {\n SuggestionsContextValue,\n SuggestionsProvider,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, ThreadProvider } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport { TypingProvider } from '../../contexts/typingContext/TypingContext';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\n\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n WutReaction,\n} from '../../icons';\nimport { FlatList as FlatListDefault, getLocalAssetUri, pickDocument } from '../../native';\nimport * as dbApi from '../../store/apis';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { addReactionToLocalState } from '../../utils/addReactionToLocalState';\nimport { DBSyncManager } from '../../utils/DBSyncManager';\nimport { patchMessageTextCommand } from '../../utils/patchMessageTextCommand';\nimport { removeReactionFromLocalState } from '../../utils/removeReactionFromLocalState';\nimport { generateRandomId, isLocalUrl, MessageStatusTypes, ReactionData } from '../../utils/utils';\nimport { Attachment as AttachmentDefault } from '../Attachment/Attachment';\nimport { AttachmentActions as AttachmentActionsDefault } from '../Attachment/AttachmentActions';\nimport { AudioAttachment as AudioAttachmentDefault } from '../Attachment/AudioAttachment';\nimport { Card as CardDefault } from '../Attachment/Card';\nimport { FileAttachment as FileAttachmentDefault } from '../Attachment/FileAttachment';\nimport { FileAttachmentGroup as FileAttachmentGroupDefault } from '../Attachment/FileAttachmentGroup';\nimport { FileIcon as FileIconDefault } from '../Attachment/FileIcon';\nimport { Gallery as GalleryDefault } from '../Attachment/Gallery';\nimport { Giphy as GiphyDefault } from '../Attachment/Giphy';\nimport { ImageLoadingFailedIndicator as ImageLoadingFailedIndicatorDefault } from '../Attachment/ImageLoadingFailedIndicator';\nimport { ImageLoadingIndicator as ImageLoadingIndicatorDefault } from '../Attachment/ImageLoadingIndicator';\nimport { VideoThumbnail as VideoThumbnailDefault } from '../Attachment/VideoThumbnail';\nimport { AutoCompleteSuggestionHeader as AutoCompleteSuggestionHeaderDefault } from '../AutoCompleteInput/AutoCompleteSuggestionHeader';\nimport { AutoCompleteSuggestionItem as AutoCompleteSuggestionItemDefault } from '../AutoCompleteInput/AutoCompleteSuggestionItem';\nimport { AutoCompleteSuggestionList as AutoCompleteSuggestionListDefault } from '../AutoCompleteInput/AutoCompleteSuggestionList';\nimport { EmptyStateIndicator as EmptyStateIndicatorDefault } from '../Indicators/EmptyStateIndicator';\nimport {\n LoadingErrorIndicator as LoadingErrorIndicatorDefault,\n LoadingErrorProps,\n} from '../Indicators/LoadingErrorIndicator';\nimport { LoadingIndicator as LoadingIndicatorDefault } from '../Indicators/LoadingIndicator';\nimport { KeyboardCompatibleView as KeyboardCompatibleViewDefault } from '../KeyboardCompatibleView/KeyboardCompatibleView';\nimport { Message as MessageDefault } from '../Message/Message';\nimport { MessageAvatar as MessageAvatarDefault } from '../Message/MessageSimple/MessageAvatar';\nimport { MessageContent as MessageContentDefault } from '../Message/MessageSimple/MessageContent';\nimport { MessageDeleted as MessageDeletedDefault } from '../Message/MessageSimple/MessageDeleted';\nimport { MessageFooter as MessageFooterDefault } from '../Message/MessageSimple/MessageFooter';\nimport { MessagePinnedHeader as MessagePinnedHeaderDefault } from '../Message/MessageSimple/MessagePinnedHeader';\nimport { MessageReplies as MessageRepliesDefault } from '../Message/MessageSimple/MessageReplies';\nimport { MessageRepliesAvatars as MessageRepliesAvatarsDefault } from '../Message/MessageSimple/MessageRepliesAvatars';\nimport { MessageSimple as MessageSimpleDefault } from '../Message/MessageSimple/MessageSimple';\nimport { MessageStatus as MessageStatusDefault } from '../Message/MessageSimple/MessageStatus';\nimport { ReactionList as ReactionListDefault } from '../Message/MessageSimple/ReactionList';\nimport { AttachButton as AttachButtonDefault } from '../MessageInput/AttachButton';\nimport { CommandsButton as CommandsButtonDefault } from '../MessageInput/CommandsButton';\nimport { InputEditingStateHeader as InputEditingStateHeaderDefault } from '../MessageInput/components/InputEditingStateHeader';\nimport { InputGiphySearch as InputGiphyCommandInputDefault } from '../MessageInput/components/InputGiphySearch';\nimport { InputReplyStateHeader as InputReplyStateHeaderDefault } from '../MessageInput/components/InputReplyStateHeader';\nimport { CooldownTimer as CooldownTimerDefault } from '../MessageInput/CooldownTimer';\nimport { FileUploadPreview as FileUploadPreviewDefault } from '../MessageInput/FileUploadPreview';\nimport { ImageUploadPreview as ImageUploadPreviewDefault } from '../MessageInput/ImageUploadPreview';\nimport { InputButtons as InputButtonsDefault } from '../MessageInput/InputButtons';\nimport { MoreOptionsButton as MoreOptionsButtonDefault } from '../MessageInput/MoreOptionsButton';\nimport { SendButton as SendButtonDefault } from '../MessageInput/SendButton';\nimport { SendMessageDisallowedIndicator as SendMessageDisallowedIndicatorDefault } from '../MessageInput/SendMessageDisallowedIndicator';\nimport { ShowThreadMessageInChannelButton as ShowThreadMessageInChannelButtonDefault } from '../MessageInput/ShowThreadMessageInChannelButton';\nimport { UploadProgressIndicator as UploadProgressIndicatorDefault } from '../MessageInput/UploadProgressIndicator';\nimport { DateHeader as DateHeaderDefault } from '../MessageList/DateHeader';\nimport type { MessageType } from '../MessageList/hooks/useMessageList';\nimport { InlineDateSeparator as InlineDateSeparatorDefault } from '../MessageList/InlineDateSeparator';\nimport { InlineUnreadIndicator as InlineUnreadIndicatorDefault } from '../MessageList/InlineUnreadIndicator';\nimport { MessageList as MessageListDefault } from '../MessageList/MessageList';\nimport { MessageSystem as MessageSystemDefault } from '../MessageList/MessageSystem';\nimport { NetworkDownIndicator as NetworkDownIndicatorDefault } from '../MessageList/NetworkDownIndicator';\nimport { ScrollToBottomButton as ScrollToBottomButtonDefault } from '../MessageList/ScrollToBottomButton';\nimport { TypingIndicator as TypingIndicatorDefault } from '../MessageList/TypingIndicator';\nimport { TypingIndicatorContainer as TypingIndicatorContainerDefault } from '../MessageList/TypingIndicatorContainer';\nimport { OverlayReactionList as OverlayReactionListDefault } from '../MessageOverlay/OverlayReactionList';\nimport { Reply as ReplyDefault } from '../Reply/Reply';\n\nconst styles = StyleSheet.create({\n selectChannel: { fontWeight: 'bold', padding: 16 },\n});\n\nexport const reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\n/**\n * If count of unread messages is less than 4, then no need to scroll to first unread message,\n * since first unread message will be in visible frame anyways.\n */\nconst scrollToFirstUnreadThreshold = 4;\n\nconst defaultThrottleInterval = 500;\nconst defaultDebounceInterval = 500;\nconst throttleOptions = {\n leading: true,\n trailing: true,\n};\nconst debounceOptions = {\n leading: true,\n trailing: true,\n};\n\nexport type ChannelPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'channel'> &\n Partial<\n Pick<\n ChannelContextValue<StreamChatGenerics>,\n | 'EmptyStateIndicator'\n | 'enableMessageGroupingByUser'\n | 'enforceUniqueReaction'\n | 'giphyEnabled'\n | 'hideStickyDateHeader'\n | 'hideDateSeparators'\n | 'LoadingIndicator'\n | 'maxTimeBetweenGroupedMessages'\n | 'NetworkDownIndicator'\n | 'StickyHeader'\n >\n > &\n Pick<ChatContextValue<StreamChatGenerics>, 'client' | 'enableOfflineSupport'> &\n Partial<\n Omit<\n InputMessageInputContextValue<StreamChatGenerics>,\n 'quotedMessage' | 'editing' | 'clearEditingState' | 'clearQuotedMessageState' | 'sendMessage'\n >\n > &\n Partial<\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem' | 'AutoCompleteSuggestionList'\n >\n > &\n Pick<TranslationContextValue, 't'> &\n Partial<\n Pick<\n PaginatedMessageListContextValue<StreamChatGenerics>,\n 'messages' | 'loadingMore' | 'loadingMoreRecent'\n >\n > &\n UseChannelStateValue<StreamChatGenerics> &\n Partial<\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'Attachment'\n | 'AttachmentActions'\n | 'AudioAttachment'\n | 'Card'\n | 'CardCover'\n | 'CardFooter'\n | 'CardHeader'\n | 'DateHeader'\n | 'deletedMessagesVisibilityType'\n | 'disableTypingIndicator'\n | 'dismissKeyboardOnMessageTouch'\n | 'FileAttachment'\n | 'FileAttachmentIcon'\n | 'FileAttachmentGroup'\n | 'FlatList'\n | 'forceAlignMessages'\n | 'formatDate'\n | 'Gallery'\n | 'getMessagesGroupStyles'\n | 'Giphy'\n | 'giphyVersion'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleReaction'\n | 'handleQuotedReply'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'InlineDateSeparator'\n | 'InlineUnreadIndicator'\n | 'isAttachmentEqual'\n | 'legacyImageViewerSwipeBehaviour'\n | 'ImageLoadingFailedIndicator'\n | 'ImageLoadingIndicator'\n | 'markdownRules'\n | 'Message'\n | 'messageActions'\n | 'MessageAvatar'\n | 'MessageContent'\n | 'messageContentOrder'\n | 'MessageDeleted'\n | 'MessageFooter'\n | 'MessageHeader'\n | 'MessageList'\n | 'MessagePinnedHeader'\n | 'MessageReplies'\n | 'MessageRepliesAvatars'\n | 'MessageSimple'\n | 'MessageStatus'\n | 'MessageSystem'\n | 'MessageText'\n | 'myMessageTheme'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'ReactionList'\n | 'Reply'\n | 'ScrollToBottomButton'\n | 'selectReaction'\n | 'supportedReactions'\n | 'TypingIndicator'\n | 'TypingIndicatorContainer'\n | 'UrlPreview'\n | 'VideoThumbnail'\n >\n > &\n Partial<\n Pick<ThreadContextValue<StreamChatGenerics>, 'allowThreadMessagesInChannel' | 'thread'>\n > & {\n shouldSyncChannel: boolean;\n /**\n * Additional props passed to keyboard avoiding view\n */\n additionalKeyboardAvoidingViewProps?: Partial<KeyboardAvoidingViewProps>;\n /**\n * Disables the channel UI if the channel is frozen\n */\n disableIfFrozenChannel?: boolean;\n /**\n * When true, disables the KeyboardCompatibleView wrapper\n *\n * Channel internally uses the [KeyboardCompatibleView](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx)\n * component to adjust the height of Channel when the keyboard is opened or dismissed. This prop provides the ability to disable this functionality in case you\n * want to use [KeyboardAvoidingView](https://facebook.github.io/react-native/docs/keyboardavoidingview) or handle dismissal yourself.\n * KeyboardAvoidingView works well when your component occupies 100% of screen height, otherwise it may raise some issues.\n */\n disableKeyboardCompatibleView?: boolean;\n /**\n * Overrides the Stream default mark channel read request (Advanced usage only)\n * @param channel Channel object\n */\n doMarkReadRequest?: (channel: ChannelType<StreamChatGenerics>) => void;\n /**\n * Overrides the Stream default send message request (Advanced usage only)\n * @param channelId\n * @param messageData Message object\n */\n doSendMessageRequest?: (\n channelId: string,\n messageData: StreamMessage<StreamChatGenerics>,\n ) => Promise<SendMessageAPIResponse<StreamChatGenerics>>;\n /**\n * Overrides the Stream default update message request (Advanced usage only)\n * @param channelId\n * @param updatedMessage UpdatedMessage object\n */\n doUpdateMessageRequest?: (\n channelId: string,\n updatedMessage: Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0],\n ) => ReturnType<StreamChat<StreamChatGenerics>['updateMessage']>;\n /**\n * When true, messageList will be scrolled at first unread message, when opened.\n */\n initialScrollToFirstUnreadMessage?: boolean;\n keyboardBehavior?: KeyboardAvoidingViewProps['behavior'];\n /**\n * Custom wrapper component that handles height adjustment of Channel component when keyboard is opened or dismissed\n * Default component (accepts the same props): [KeyboardCompatibleView](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx)\n *\n * **Example:**\n *\n * ```\n * <Channel\n * channel={channel}\n * KeyboardCompatibleView={(props) => {\n * return (\n * <KeyboardCompatibleView>\n * {props.children}\n * </KeyboardCompatibleView>\n * )\n * }}\n * />\n * ```\n */\n KeyboardCompatibleView?: React.ComponentType<KeyboardAvoidingViewProps>;\n keyboardVerticalOffset?: number;\n /**\n * Custom loading error indicator to override the Stream default\n */\n LoadingErrorIndicator?: React.ComponentType<LoadingErrorProps>;\n maxMessageLength?: number;\n /**\n * Load the channel at a specified message instead of the most recent message.\n */\n messageId?: string;\n newMessageStateUpdateThrottleInterval?: number;\n overrideOwnCapabilities?: Partial<OwnCapabilitiesContextValue>;\n stateUpdateThrottleInterval?: number;\n /**\n * Tells if channel is rendering a thread list\n */\n threadList?: boolean;\n };\n\nconst ChannelWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChannelPropsWithContext<StreamChatGenerics>>,\n) => {\n const {\n additionalKeyboardAvoidingViewProps,\n additionalTextInputProps,\n additionalTouchableProps,\n allowThreadMessagesInChannel = true,\n AttachButton = AttachButtonDefault,\n Attachment = AttachmentDefault,\n AttachmentActions = AttachmentActionsDefault,\n AudioAttachment = AudioAttachmentDefault,\n AutoCompleteSuggestionHeader = AutoCompleteSuggestionHeaderDefault,\n AutoCompleteSuggestionItem = AutoCompleteSuggestionItemDefault,\n AutoCompleteSuggestionList = AutoCompleteSuggestionListDefault,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n Card = CardDefault,\n CardCover,\n CardFooter,\n CardHeader,\n channel,\n children,\n client,\n CommandsButton = CommandsButtonDefault,\n compressImageQuality,\n CooldownTimer = CooldownTimerDefault,\n DateHeader = DateHeaderDefault,\n deletedMessagesVisibilityType = 'always',\n disableIfFrozenChannel = true,\n disableKeyboardCompatibleView = false,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch = true,\n doDocUploadRequest,\n doImageUploadRequest,\n doMarkReadRequest,\n doSendMessageRequest,\n doUpdateMessageRequest,\n EmptyStateIndicator = EmptyStateIndicatorDefault,\n enableMessageGroupingByUser = true,\n enableOfflineSupport,\n enforceUniqueReaction = false,\n FileAttachment = FileAttachmentDefault,\n FileAttachmentGroup = FileAttachmentGroupDefault,\n FileAttachmentIcon = FileIconDefault,\n FileUploadPreview = FileUploadPreviewDefault,\n FlatList = FlatListDefault,\n forceAlignMessages,\n formatDate,\n Gallery = GalleryDefault,\n getMessagesGroupStyles,\n Giphy = GiphyDefault,\n giphyEnabled,\n giphyVersion = 'fixed_height',\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n hasCommands = true,\n // If pickDocument isn't available, default to hiding the file picker\n hasFilePicker = pickDocument !== null,\n hasImagePicker = true,\n hideDateSeparators = false,\n hideStickyDateHeader = false,\n ImageUploadPreview = ImageUploadPreviewDefault,\n initialScrollToFirstUnreadMessage = false,\n initialValue,\n InlineDateSeparator = InlineDateSeparatorDefault,\n InlineUnreadIndicator = InlineUnreadIndicatorDefault,\n Input,\n InputButtons = InputButtonsDefault,\n InputEditingStateHeader = InputEditingStateHeaderDefault,\n InputGiphySearch = InputGiphyCommandInputDefault,\n InputReplyStateHeader = InputReplyStateHeaderDefault,\n isAttachmentEqual,\n keyboardBehavior,\n KeyboardCompatibleView = KeyboardCompatibleViewDefault,\n keyboardVerticalOffset,\n legacyImageViewerSwipeBehaviour = false,\n LoadingErrorIndicator = LoadingErrorIndicatorDefault,\n LoadingIndicator = LoadingIndicatorDefault,\n loadingMore: loadingMoreProp,\n loadingMoreRecent: loadingMoreRecentProp,\n ImageLoadingFailedIndicator = ImageLoadingFailedIndicatorDefault,\n ImageLoadingIndicator = ImageLoadingIndicatorDefault,\n markdownRules,\n maxMessageLength: maxMessageLengthProp,\n maxNumberOfFiles = 10,\n maxTimeBetweenGroupedMessages,\n mentionAllAppUsersEnabled = false,\n mentionAllAppUsersQuery,\n members,\n Message = MessageDefault,\n messageActions,\n MessageAvatar = MessageAvatarDefault,\n MessageContent = MessageContentDefault,\n messageContentOrder = ['quoted_reply', 'gallery', 'files', 'text', 'attachments'],\n MessageDeleted = MessageDeletedDefault,\n MessageFooter = MessageFooterDefault,\n MessageHeader,\n messageId,\n MessageList = MessageListDefault,\n MessagePinnedHeader = MessagePinnedHeaderDefault,\n MessageReplies = MessageRepliesDefault,\n MessageRepliesAvatars = MessageRepliesAvatarsDefault,\n messages,\n MessageSimple = MessageSimpleDefault,\n MessageStatus = MessageStatusDefault,\n MessageSystem = MessageSystemDefault,\n MessageText,\n MoreOptionsButton = MoreOptionsButtonDefault,\n myMessageTheme,\n newMessageStateUpdateThrottleInterval = defaultThrottleInterval,\n NetworkDownIndicator = NetworkDownIndicatorDefault,\n numberOfLines = 5,\n onChangeText,\n onLongPressMessage,\n overrideOwnCapabilities,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList = OverlayReactionListDefault,\n ReactionList = ReactionListDefault,\n read,\n Reply = ReplyDefault,\n ScrollToBottomButton = ScrollToBottomButtonDefault,\n selectReaction,\n SendButton = SendButtonDefault,\n SendMessageDisallowedIndicator = SendMessageDisallowedIndicatorDefault,\n sendImageAsync = false,\n setInputRef,\n setMembers,\n setMessages,\n setRead,\n setThreadMessages,\n setTyping,\n setWatcherCount,\n setWatchers,\n shouldSyncChannel,\n ShowThreadMessageInChannelButton = ShowThreadMessageInChannelButtonDefault,\n stateUpdateThrottleInterval = defaultThrottleInterval,\n StickyHeader,\n supportedReactions = reactionData,\n t,\n thread: threadProps,\n threadList,\n threadMessages,\n typing,\n TypingIndicator = TypingIndicatorDefault,\n TypingIndicatorContainer = TypingIndicatorContainerDefault,\n UploadProgressIndicator = UploadProgressIndicatorDefault,\n UrlPreview = CardDefault,\n VideoThumbnail = VideoThumbnailDefault,\n watcherCount,\n watchers,\n } = props;\n\n const {\n theme: {\n channel: { selectChannel },\n colors: { black },\n },\n } = useTheme();\n const [deleted, setDeleted] = useState(false);\n const [editing, setEditing] = useState<boolean | MessageType<StreamChatGenerics>>(false);\n const [error, setError] = useState<Error | boolean>(false);\n const [hasMore, setHasMore] = useState(true);\n const [lastRead, setLastRead] = useState<ChannelContextValue<StreamChatGenerics>['lastRead']>();\n const [loading, setLoading] = useState(!channel?.state.messages.length);\n const [loadingMore, setLoadingMore] = useState(false);\n\n const [loadingMoreRecent, setLoadingMoreRecent] = useState(false);\n const [quotedMessage, setQuotedMessage] =\n useState<boolean | MessageType<StreamChatGenerics>>(false);\n const [thread, setThread] = useState<ThreadContextValue<StreamChatGenerics>['thread']>(\n threadProps || null,\n );\n const [threadHasMore, setThreadHasMore] = useState(true);\n const [threadLoadingMore, setThreadLoadingMore] = useState(false);\n\n const [syncingChannel, setSyncingChannel] = useState(false);\n\n /**\n * Flag to track if we know for sure that there are no more recent messages to load.\n * This is necessary to avoid unnecessary api calls to load recent messages on pagination.\n */\n const [hasNoMoreRecentMessagesToLoad, setHasNoMoreRecentMessagesToLoad] = useState(true);\n\n const { setTargetedMessage, targetedMessage } = useTargetedMessage();\n\n const channelId = channel?.id || '';\n useEffect(() => {\n const initChannel = () => {\n if (!channel || !shouldSyncChannel || channel.offlineMode) return;\n /**\n * Loading channel at first unread message requires channel to be initialized in the first place,\n * since we use read state on channel to decide what offset to load channel at.\n * Also there is no use case from UX perspective, why one would need loading uninitialized channel at particular message.\n * If the channel is not initiated, then we need to do channel.watch, which is more expensive for backend than channel.query.\n */\n if (!channel.initialized) {\n loadChannel();\n return;\n }\n\n if (messageId) {\n loadChannelAroundMessage({ messageId });\n return;\n }\n\n if (\n initialScrollToFirstUnreadMessage &&\n channel.countUnread() > scrollToFirstUnreadThreshold\n ) {\n loadChannelAtFirstUnreadMessage();\n } else {\n loadChannel();\n }\n };\n\n initChannel();\n\n return () => {\n copyChannelState.cancel();\n copyReadState.cancel();\n copyTypingState.cancel();\n loadMoreFinished.cancel();\n loadMoreThreadFinished.cancel();\n };\n }, [channelId, messageId]);\n\n const threadPropsExists = !!threadProps;\n useEffect(() => {\n if (threadProps && shouldSyncChannel) {\n setThread(threadProps);\n if (channel && threadProps?.id) {\n setThreadMessages(channel.state.threads?.[threadProps.id] || []);\n }\n } else {\n setThread(null);\n }\n }, [threadPropsExists, shouldSyncChannel]);\n\n const handleAppBackground = useCallback(() => {\n const channelData = channel.data as\n | Extract<typeof channel.data, { own_capabilities: string[] }>\n | undefined;\n if (channelData?.own_capabilities?.includes('send-typing-events')) {\n channel.sendEvent({\n parent_id: thread?.id,\n type: 'typing.stop',\n } as StreamEvent<StreamChatGenerics>);\n }\n }, [thread?.id, channelId]);\n\n useAppStateListener(undefined, handleAppBackground);\n\n /**\n * CHANNEL CONSTANTS\n */\n const isAdmin = client?.user?.role === 'admin' || channel?.state.membership.role === 'admin';\n\n const isModerator =\n channel?.state.membership.role === 'channel_moderator' ||\n channel?.state.membership.role === 'moderator';\n\n const isOwner = channel?.state.membership.role === 'owner';\n\n /**\n * CHANNEL METHODS\n */\n const markRead: ChannelContextValue<StreamChatGenerics>['markRead'] = useRef(\n throttle(\n () => {\n if (!channel || channel?.disconnected || !clientChannelConfig?.read_events) {\n return;\n }\n\n if (doMarkReadRequest) {\n doMarkReadRequest(channel);\n } else {\n logChatPromiseExecution(channel.markRead(), 'mark read');\n }\n },\n defaultThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyMessagesState = useRef(\n throttle(\n () => {\n if (channel) {\n setMessages([...channel.state.messages]);\n }\n },\n newMessageStateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyTypingState = useRef(\n throttle(\n () => {\n if (channel) {\n setTyping({ ...channel.state.typing });\n }\n },\n stateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyReadState = useRef(\n throttle(\n () => {\n if (channel) {\n setRead({ ...channel.state.read });\n }\n },\n stateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n const copyChannelState = useRef(\n throttle(\n () => {\n setLoading(false);\n if (channel) {\n setMembers({ ...channel.state.members });\n setMessages([...channel.state.messages]);\n setRead({ ...channel.state.read });\n setTyping({ ...channel.state.typing });\n setWatcherCount(channel.state.watcher_count);\n setWatchers({ ...channel.state.watchers });\n }\n },\n stateUpdateThrottleInterval,\n throttleOptions,\n ),\n ).current;\n\n // subscribe to specific channel events\n useEffect(() => {\n const channelSubscriptions: Array<ReturnType<ChannelType['on']>> = [];\n if (channel && shouldSyncChannel) {\n channelSubscriptions.push(channel.on('message.new', copyMessagesState));\n channelSubscriptions.push(channel.on('message.read', copyReadState));\n channelSubscriptions.push(channel.on('typing.start', copyTypingState));\n channelSubscriptions.push(channel.on('typing.stop', copyTypingState));\n }\n return () => {\n channelSubscriptions.forEach((s) => s.unsubscribe());\n };\n }, [channelId, shouldSyncChannel]);\n\n // subscribe to the generic all channel event\n useEffect(() => {\n const handleEvent: EventHandler<StreamChatGenerics> = (event) => {\n if (shouldSyncChannel) {\n if (thread) {\n const updatedThreadMessages =\n (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;\n setThreadMessages(updatedThreadMessages);\n }\n\n if (channel && thread && event.message?.id === thread.id) {\n const updatedThread = channel.state.formatMessage(event.message);\n setThread(updatedThread);\n }\n\n // only update channel state if the events are not the previously subscribed useEffect's subscription events\n if (\n channel &&\n event.type !== 'message.new' &&\n event.type !== 'message.read' &&\n event.type !== 'typing.start' &&\n event.type !== 'typing.stop'\n ) {\n copyChannelState();\n }\n }\n };\n const { unsubscribe } = channel.on(handleEvent);\n return unsubscribe;\n }, [channelId, thread?.id, shouldSyncChannel]);\n\n // subscribe to channel.deleted event\n useEffect(() => {\n const { unsubscribe } = client.on('channel.deleted', (event) => {\n if (event.cid === channel?.cid) {\n setDeleted(true);\n }\n });\n\n return unsubscribe;\n }, [channelId]);\n\n const channelQueryCallRef = useRef(\n async (\n queryCall: () => Promise<void>,\n onAfterQueryCall: (() => void) | undefined = undefined,\n ) => {\n setError(false);\n try {\n await queryCall();\n setLastRead(new Date());\n setHasMore(true);\n copyChannelState();\n onAfterQueryCall?.();\n } catch (err) {\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoading(false);\n setLastRead(new Date());\n }\n },\n );\n\n /**\n * Loads channel at first unread message.\n */\n const loadChannelAtFirstUnreadMessage = () => {\n if (!channel) return;\n let unreadMessageIdToScrollTo: string | undefined;\n // query for messages around the last read date\n return channelQueryCallRef.current(\n async () => {\n setLoading(true);\n const lastReadDate = channel.lastRead();\n // if last read date is present we can just fetch messages around that date\n // last read date not being present is an edge case if somewhere the user of SDK deletes the read state (this will usually never happen)\n if (lastReadDate) {\n setHasNoMoreRecentMessagesToLoad(false); // we are jumping to a message, hence we do not know for sure anymore if there are no more recent messages\n // get totally 30 messages... max 15 before last read date and max 15 after last read date\n // ref: https://github.com/GetStream/chat/pull/2588\n await channel.query(\n {\n messages: {\n created_at_around: lastReadDate,\n limit: 30,\n },\n },\n 'new',\n );\n unreadMessageIdToScrollTo = channel.state.messages.find(\n (m) => lastReadDate < m.created_at,\n )?.id;\n } else {\n // we just load the latest messages (25 is the default) and we cant scroll to first unread message\n await channel.state.loadMessageIntoState('latest');\n }\n setLoading(false);\n },\n () => {\n if (unreadMessageIdToScrollTo) {\n setTargetedMessage(unreadMessageIdToScrollTo);\n }\n },\n );\n };\n\n /**\n * Loads channel around a specific message\n *\n * @param messageId If undefined, channel will be loaded at most recent message.\n */\n const loadChannelAroundMessage: ChannelContextValue<StreamChatGenerics>['loadChannelAroundMessage'] =\n ({ messageId }) =>\n channelQueryCallRef.current(\n async () => {\n setHasNoMoreRecentMessagesToLoad(false); // we are jumping to a message, hence we do not know for sure anymore if there are no more recent messages\n setLoading(true);\n if (messageId) {\n await channel.state.loadMessageIntoState(messageId);\n } else {\n await channel.state.loadMessageIntoState('latest');\n channel.state.setIsUpToDate(true);\n }\n setLoading(false);\n },\n () => {\n if (messageId) {\n setTargetedMessage(messageId);\n }\n },\n );\n\n /**\n * @deprecated use loadChannelAroundMessage instead\n *\n * Loads channel at specific message\n *\n * @param messageId If undefined, channel will be loaded at most recent message.\n * @param before Number of message to query before messageId\n * @param after Number of message to query after messageId\n */\n const loadChannelAtMessage: ChannelContextValue<StreamChatGenerics>['loadChannelAtMessage'] = ({\n after = 2,\n before = 30,\n messageId,\n }) =>\n channelQueryCallRef.current(async () => {\n await queryAtMessage({ after, before, messageId });\n\n if (messageId) {\n setTargetedMessage(messageId);\n }\n });\n\n const loadChannel = () =>\n channelQueryCallRef.current(async () => {\n if (!channel?.initialized || !channel.state.isUpToDate) {\n await channel?.watch();\n setHasNoMoreRecentMessagesToLoad(true);\n channel?.state.setIsUpToDate(true);\n } else {\n await channel.state.loadMessageIntoState('latest');\n }\n return;\n });\n\n const reloadThread = async () => {\n if (!channel || !thread?.id) return;\n setThreadLoadingMore(true);\n try {\n const parentID = thread.id;\n\n const limit = 50;\n channel.state.threads[parentID] = [];\n const queryResponse = await channel.getReplies(parentID, {\n limit,\n });\n\n const updatedHasMore = queryResponse.messages.length === limit;\n const updatedThreadMessages = channel.state.threads[parentID] || [];\n loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);\n const { messages } = await channel.getMessagesById([parentID]);\n const [threadMessage] = messages;\n if (threadMessage) {\n const formattedMessage = channel.state.formatMessage(threadMessage);\n setThread(formattedMessage);\n }\n } catch (err) {\n console.warn('Thread loading request failed with error', err);\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setThreadLoadingMore(false);\n throw err;\n }\n };\n\n const resyncChannel = async () => {\n if (!channel || syncingChannel) return;\n setSyncingChannel(true);\n\n setError(false);\n try {\n /**\n * Allow a buffer of 30 new messages, so that MessageList won't move its scroll position,\n * giving smooth user experience.\n */\n const state = await channel.watch({\n messages: {\n limit: messages.length + 30,\n },\n });\n\n const oldListTopMessage = messages[0];\n const oldListTopMessageId = messages[0]?.id;\n const oldListBottomMessage = messages[messages.length - 1];\n\n const newListTopMessage = state.messages[0];\n const newListBottomMessage = state.messages[state.messages.length - 1];\n\n if (\n !oldListTopMessage || // previous list was empty\n !oldListBottomMessage || // previous list was empty\n !newListTopMessage || // new list is truncated\n !newListBottomMessage // new list is truncated\n ) {\n /** Channel was truncated */\n channel.state.clearMessages();\n channel.state.setIsUpToDate(true);\n channel.state.addMessagesSorted(state.messages);\n channel.state.addPinnedMessages(state.pinned_messages);\n\n copyChannelState();\n return;\n }\n\n const parseMessage = (message: typeof oldListTopMessage) =>\n ({\n ...message,\n created_at: message.created_at.toString(),\n pinned_at: message.pinned_at?.toString(),\n updated_at: message.updated_at?.toString(),\n } as unknown as MessageResponse<StreamChatGenerics>);\n\n const failedMessages = messages\n .filter((message) => message.status === MessageStatusTypes.FAILED)\n .map(parseMessage);\n\n const failedThreadMessages = thread\n ? threadMessages\n .filter((message) => message.status === MessageStatusTypes.FAILED)\n .map(parseMessage)\n : [];\n\n const oldListTopMessageCreatedAt = oldListTopMessage.created_at;\n const oldListBottomMessageCreatedAt = oldListBottomMessage.created_at;\n const newListTopMessageCreatedAt = newListTopMessage.created_at\n ? new Date(newListTopMessage.created_at)\n : new Date();\n const newListBottomMessageCreatedAt = newListBottomMessage?.created_at\n ? new Date(newListBottomMessage.created_at)\n : new Date();\n\n let finalMessages = [];\n\n if (\n oldListTopMessage &&\n oldListTopMessageCreatedAt &&\n oldListBottomMessageCreatedAt &&\n newListTopMessageCreatedAt < oldListTopMessageCreatedAt &&\n newListBottomMessageCreatedAt >= oldListBottomMessageCreatedAt\n ) {\n const index = state.messages.findIndex((message) => message.id === oldListTopMessageId);\n finalMessages = state.messages.slice(index);\n } else {\n finalMessages = state.messages;\n }\n\n setHasNoMoreRecentMessagesToLoad(true);\n channel.state.setIsUpToDate(true);\n channel.state.clearMessages();\n channel.state.addMessagesSorted(finalMessages);\n channel.state.addPinnedMessages(state.pinned_messages);\n setHasMore(true);\n copyChannelState();\n\n if (failedMessages.length) {\n channel.state.addMessagesSorted(failedMessages);\n copyChannelState();\n }\n\n await reloadThread();\n\n if (thread && failedThreadMessages.length) {\n channel.state.addMessagesSorted(failedThreadMessages);\n setThreadMessages([...channel.state.threads[thread.id]]);\n }\n } catch (err) {\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoading(false);\n }\n\n setSyncingChannel(false);\n };\n\n // resync channel is added to ref so that it can be used in useEffect without adding it as a dependency\n const resyncChannelRef = useRef(resyncChannel);\n resyncChannelRef.current = resyncChannel;\n\n useEffect(() => {\n const connectionChangedHandler = () => {\n if (shouldSyncChannel) {\n resyncChannelRef.current();\n }\n };\n let connectionChangedSubscription: ReturnType<ChannelType['on']>;\n\n if (enableOfflineSupport) {\n connectionChangedSubscription = DBSyncManager.onSyncStatusChange(connectionChangedHandler);\n } else {\n connectionChangedSubscription = client.on('connection.changed', (event) => {\n if (event.online) {\n connectionChangedHandler();\n }\n });\n }\n return () => {\n connectionChangedSubscription.unsubscribe();\n };\n }, [enableOfflineSupport, shouldSyncChannel]);\n\n const reloadChannel = () =>\n channelQueryCallRef.current(async () => {\n setLoading(true);\n await channel.state.loadMessageIntoState('latest');\n setLoading(false);\n setHasNoMoreRecentMessagesToLoad(true);\n channel?.state.setIsUpToDate(true);\n });\n\n /**\n * @deprecated\n * Makes a query to load messages at particular message id.\n *\n * @param messageId Targeted message id\n * @param before Number of messages to load before messageId\n * @param after Number of messages to load after messageId\n */\n const queryAtMessage = async ({\n after = 10,\n before = 10,\n messageId,\n }: Parameters<ChannelContextValue<StreamChatGenerics>['loadChannelAtMessage']>[0]) => {\n if (!channel) return;\n channel.state.setIsUpToDate(false);\n channel.state.clearMessages();\n setMessages([...channel.state.messages]);\n if (!messageId) {\n await channel.query({\n messages: {\n limit: before,\n },\n watch: true,\n });\n\n channel.state.setIsUpToDate(true);\n return;\n }\n\n await queryBeforeMessage(messageId, before);\n await queryAfterMessage(messageId, after);\n };\n\n /**\n * @deprecated\n * Makes a query to load messages before particular message id.\n *\n * @param messageId Targeted message id\n * @param limit Number of messages to load\n */\n const queryBeforeMessage = async (messageId: string, limit = 5) => {\n if (!channel) return;\n\n await channel.query({\n messages: {\n id_lt: messageId,\n limit,\n },\n watch: true,\n });\n\n channel.state.setIsUpToDate(false);\n };\n\n /**\n * @deprecated\n * Makes a query to load messages later than particular message id.\n *\n * @param messageId Targeted message id\n * @param limit Number of messages to load.\n */\n const queryAfterMessage = async (messageId: string, limit = 5) => {\n if (!channel) return;\n const state = await channel.query({\n messages: {\n id_gte: messageId,\n limit,\n },\n watch: true,\n });\n\n if (state.messages.length < limit) {\n channel.state.setIsUpToDate(true);\n } else {\n channel.state.setIsUpToDate(false);\n }\n };\n\n // In case the channel is disconnected which may happen when channel is deleted,\n // underlying js client throws an error. Following function ensures that Channel component\n // won't result in error in such a case.\n const getChannelConfigSafely = () => {\n try {\n return channel?.getConfig();\n } catch (_) {\n return null;\n }\n };\n\n /**\n * Channel configs for use in disabling local functionality.\n * Nullish coalescing is used to give first priority to props to override\n * the server settings. Then priority to server settings to override defaults.\n */\n const clientChannelConfig = getChannelConfigSafely();\n\n /**\n * MESSAGE METHODS\n */\n\n const updateMessage: MessagesContextValue<StreamChatGenerics>['updateMessage'] = (\n updatedMessage,\n extraState = {},\n ) => {\n if (channel) {\n channel.state.addMessageSorted(updatedMessage, true);\n if (thread && updatedMessage.parent_id) {\n extraState.threadMessages = channel.state.threads[updatedMessage.parent_id] || [];\n setThreadMessages(extraState.threadMessages);\n }\n\n setMessages([...channel.state.messages]);\n }\n };\n\n const replaceMessage = (\n oldMessage: MessageResponse<StreamChatGenerics>,\n newMessage: MessageResponse<StreamChatGenerics>,\n ) => {\n if (channel) {\n channel.state.removeMessage(oldMessage);\n channel.state.addMessageSorted(newMessage, true);\n if (thread && newMessage.parent_id) {\n const threadMessages = channel.state.threads[newMessage.parent_id] || [];\n setThreadMessages(threadMessages);\n }\n setMessages(channel.state.messages);\n }\n };\n\n const createMessagePreview = ({\n attachments,\n mentioned_users,\n parent_id,\n text,\n ...extraFields\n }: Partial<StreamMessage<StreamChatGenerics>>) => {\n // Exclude following properties from message.user within message preview,\n // since they could be long arrays and have no meaning as sender of message.\n // Storing such large value within user's table may cause sqlite queries to crash.\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { channel_mutes, devices, mutes, ...messageUser } = client.user;\n\n const preview = {\n __html: text,\n attachments,\n created_at: new Date(),\n html: text,\n id: `${client.userID}-${generateRandomId()}`,\n mentioned_users:\n mentioned_users?.map((userId) => ({\n id: userId,\n })) || [],\n parent_id,\n reactions: [],\n status: MessageStatusTypes.SENDING,\n text,\n type: 'regular',\n user: {\n id: client.userID,\n ...messageUser,\n },\n ...extraFields,\n } as unknown as MessageResponse<StreamChatGenerics>;\n\n /**\n * This is added to the message for local rendering prior to the message\n * being returned from the backend, it is removed when the message is sent\n * as quoted_message is a reserved field.\n */\n if (preview.quoted_message_id) {\n const quotedMessage = messages.find((message) => message.id === preview.quoted_message_id);\n\n preview.quoted_message =\n quotedMessage as MessageResponse<StreamChatGenerics>['quoted_message'];\n }\n return preview;\n };\n\n const uploadPendingAttachments = async (message: MessageResponse<StreamChatGenerics>) => {\n const updatedMessage = { ...message };\n if (updatedMessage.attachments?.length) {\n for (let i = 0; i < updatedMessage.attachments?.length; i++) {\n const attachment = updatedMessage.attachments[i];\n const file = attachment.originalFile;\n // check if image_url is not a remote url\n if (\n attachment.type === 'image' &&\n file?.uri &&\n attachment.image_url &&\n isLocalUrl(attachment.image_url)\n ) {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI =\n Platform.OS === 'ios' && file.id && (await getLocalAssetUri(file.id));\n const uri = localAssetURI || file.uri || '';\n const filename = file.name ?? uri.replace(/^(file:\\/\\/|content:\\/\\/)/, '');\n const contentType = lookup(filename) || 'multipart/form-data';\n\n const uploadResponse = doImageUploadRequest\n ? await doImageUploadRequest(file, channel)\n : await channel.sendImage(uri, filename, contentType);\n\n attachment.image_url = uploadResponse.file;\n delete attachment.originalFile;\n\n dbApi.updateMessage({\n message: { ...updatedMessage, cid: channel.cid },\n });\n }\n\n if (\n (attachment.type === 'file' ||\n attachment.type === 'audio' ||\n attachment.type === 'video') &&\n attachment.asset_url &&\n isLocalUrl(attachment.asset_url) &&\n file?.uri\n ) {\n const response = doDocUploadRequest\n ? await doDocUploadRequest(file, channel)\n : await channel.sendFile(file.uri, file.name, file.mimeType);\n attachment.asset_url = response.file;\n if (response.thumb_url) {\n attachment.thumb_url = response.thumb_url;\n }\n delete attachment.originalFile;\n dbApi.updateMessage({\n message: { ...updatedMessage, cid: channel.cid },\n });\n }\n }\n }\n\n return updatedMessage;\n };\n\n const sendMessageRequest = async (\n message: MessageResponse<StreamChatGenerics>,\n retrying?: boolean,\n ) => {\n try {\n const updatedMessage = await uploadPendingAttachments(message);\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n __html,\n attachments,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n created_at,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n deleted_at,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n html,\n id,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n latest_reactions,\n mentioned_users,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n own_reactions,\n parent_id,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n quoted_message,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n reaction_counts,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n reactions,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n status,\n text,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n type,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updated_at,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n user,\n ...extraFields\n } = updatedMessage;\n if (!channel.id) return;\n\n const mentionedUserIds = mentioned_users?.map((user) => user.id) || [];\n\n const messageData = {\n attachments,\n id,\n mentioned_users: mentionedUserIds,\n parent_id,\n text: patchMessageTextCommand(text ?? '', mentionedUserIds),\n ...extraFields,\n } as StreamMessage<StreamChatGenerics>;\n\n let messageResponse = {} as SendMessageAPIResponse<StreamChatGenerics>;\n if (doSendMessageRequest) {\n messageResponse = await doSendMessageRequest(channel?.cid || '', messageData);\n } else if (channel) {\n messageResponse = await channel.sendMessage(messageData);\n }\n\n if (messageResponse.message) {\n messageResponse.message.status = MessageStatusTypes.RECEIVED;\n\n if (enableOfflineSupport) {\n dbApi.updateMessage({\n message: { ...messageResponse.message, cid: channel.cid },\n });\n }\n if (retrying) {\n replaceMessage(message, messageResponse.message);\n } else {\n updateMessage(messageResponse.message);\n }\n }\n } catch (err) {\n console.log(err);\n message.status = MessageStatusTypes.FAILED;\n updateMessage({ ...message, cid: channel.cid });\n\n if (enableOfflineSupport) {\n dbApi.updateMessage({\n message: { ...message, cid: channel.cid },\n });\n }\n }\n };\n\n const sendMessage: InputMessageInputContextValue<StreamChatGenerics>['sendMessage'] = async (\n message,\n ) => {\n if (channel?.state?.filterErrorMessages) {\n channel.state.filterErrorMessages();\n }\n\n const messagePreview = createMessagePreview({\n ...message,\n attachments: message.attachments || [],\n });\n\n if (!channel?.state.isUpToDate) {\n await reloadChannel();\n }\n\n updateMessage(messagePreview, {\n commands: [],\n messageInput: '',\n });\n\n if (enableOfflineSupport) {\n // While sending a message, we add the message to local db with failed status, so that\n // if app gets closed before message gets sent and next time user opens the app\n // then user can see that message in failed state and can retry.\n // If succesfull, it will be updated with received status.\n dbApi.upsertMessages({\n messages: [{ ...messagePreview, cid: channel.cid, status: MessageStatusTypes.FAILED }],\n });\n }\n\n await sendMessageRequest(messagePreview);\n };\n\n const retrySendMessage: MessagesContextValue<StreamChatGenerics>['retrySendMessage'] = async (\n message,\n ) => {\n const statusPendingMessage = {\n ...message,\n status: MessageStatusTypes.SENDING,\n };\n\n updateMessage(statusPendingMessage);\n\n await sendMessageRequest(statusPendingMessage, true);\n };\n\n // hard limit to prevent you from scrolling faster than 1 page per 2 seconds\n const loadMoreFinished = useRef(\n debounce(\n (updatedHasMore: boolean, newMessages: ChannelState<StreamChatGenerics>['messages']) => {\n setLoadingMore(false);\n setError(false);\n setHasMore(updatedHasMore);\n setMessages(newMessages);\n },\n defaultDebounceInterval,\n debounceOptions,\n ),\n ).current;\n\n const loadMore: PaginatedMessageListContextValue<StreamChatGenerics>['loadMore'] = async (\n limit = 20,\n ) => {\n if (loadingMore || hasMore === false) {\n return;\n }\n setLoadingMore(true);\n\n if (!messages.length) {\n return setLoadingMore(false);\n }\n\n const oldestMessage = messages && messages[0];\n\n if (oldestMessage && oldestMessage.status !== MessageStatusTypes.RECEIVED) {\n return setLoadingMore(false);\n }\n\n const oldestID = oldestMessage && oldestMessage.id;\n\n try {\n if (channel) {\n const queryResponse = await channel.query({\n messages: { id_lt: oldestID, limit },\n });\n\n const updatedHasMore = queryResponse.messages.length === limit;\n loadMoreFinished(updatedHasMore, channel.state.messages);\n }\n } catch (err) {\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoadingMore(false);\n throw err;\n }\n };\n\n const loadMoreRecent: PaginatedMessageListContextValue<StreamChatGenerics>['loadMoreRecent'] =\n async (limit = 5) => {\n if (hasNoMoreRecentMessagesToLoad) {\n return;\n }\n\n setLoadingMoreRecent(true);\n\n const recentMessage = messages[messages.length - 1];\n\n if (recentMessage?.status !== MessageStatusTypes.RECEIVED) {\n setLoadingMoreRecent(false);\n return;\n }\n\n try {\n if (channel) {\n const state = await channel.query({\n messages: {\n id_gte: recentMessage.id,\n limit,\n },\n watch: true,\n });\n setHasNoMoreRecentMessagesToLoad(state.messages.length < limit);\n loadMoreRecentFinished(channel.state.messages);\n }\n } catch (err) {\n console.warn('Message pagination request failed with error', err);\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setLoadingMoreRecent(false);\n throw err;\n }\n };\n\n // hard limit to prevent you from scrolling faster than 1 page per 2 seconds\n const loadMoreRecentFinished = useRef(\n debounce(\n (newMessages: ChannelState<StreamChatGenerics>['messages']) => {\n setLoadingMoreRecent(false);\n setMessages(newMessages);\n setError(false);\n },\n defaultDebounceInterval,\n debounceOptions,\n ),\n ).current;\n\n const editMessage: InputMessageInputContextValue<StreamChatGenerics>['editMessage'] = (\n updatedMessage,\n ) =>\n doUpdateMessageRequest\n ? doUpdateMessageRequest(channel?.cid || '', updatedMessage)\n : client.updateMessage(updatedMessage);\n\n const setEditingState: MessagesContextValue<StreamChatGenerics>['setEditingState'] = (\n message,\n ) => {\n setEditing(message);\n };\n\n const setQuotedMessageState: MessagesContextValue<StreamChatGenerics>['setQuotedMessageState'] = (\n message,\n ) => {\n setQuotedMessage(message);\n };\n\n const clearEditingState: InputMessageInputContextValue<StreamChatGenerics>['clearEditingState'] =\n () => setEditing(false);\n\n const clearQuotedMessageState: InputMessageInputContextValue<StreamChatGenerics>['clearQuotedMessageState'] =\n () => setQuotedMessage(false);\n\n const removeMessage: MessagesContextValue<StreamChatGenerics>['removeMessage'] = (message) => {\n if (channel) {\n channel.state.removeMessage(message);\n setMessages(channel.state.messages);\n if (thread) {\n setThreadMessages(channel.state.threads[thread.id] || []);\n }\n }\n\n if (enableOfflineSupport) {\n dbApi.deleteMessage({\n id: message.id,\n });\n }\n };\n\n const sendReaction = async (type: string, messageId: string) => {\n if (!channel?.id || !client.user) {\n throw new Error('Channel has not been initialized');\n }\n\n const payload: Parameters<ChannelClass<StreamChatGenerics>['sendReaction']> = [\n messageId,\n {\n type,\n } as Reaction<StreamChatGenerics>,\n { enforce_unique: enforceUniqueReaction },\n ];\n\n if (!enableOfflineSupport) {\n await channel.sendReaction(...payload);\n return;\n }\n\n addReactionToLocalState<StreamChatGenerics>({\n channel,\n enforceUniqueReaction,\n messageId,\n reactionType: type,\n user: client.user,\n });\n\n setMessages(channel.state.messages);\n\n await DBSyncManager.queueTask<StreamChatGenerics>({\n client,\n task: {\n channelId: channel.id,\n channelType: channel.type,\n messageId,\n payload,\n type: 'send-reaction',\n },\n });\n };\n const deleteMessage: MessagesContextValue<StreamChatGenerics>['deleteMessage'] = async (\n message,\n ) => {\n if (!channel.id) {\n throw new Error('Channel has not been initialized yet');\n }\n\n if (!enableOfflineSupport) {\n await client.deleteMessage(message.id);\n return;\n }\n\n if (message.status === MessageStatusTypes.FAILED) {\n DBSyncManager.dropPendingTasks({ messageId: message.id });\n removeMessage(message);\n } else {\n updateMessage({\n ...message,\n cid: channel.cid,\n deleted_at: new Date().toISOString(),\n type: 'deleted',\n });\n\n const data = await DBSyncManager.queueTask<StreamChatGenerics>({\n client,\n task: {\n channelId: channel.id,\n channelType: channel.type,\n messageId: message.id,\n payload: [message.id],\n type: 'delete-message',\n },\n });\n\n if (data?.message) {\n updateMessage({ ...data.message });\n }\n }\n };\n\n const deleteReaction: MessagesContextValue<StreamChatGenerics>['deleteReaction'] = async (\n type: string,\n messageId: string,\n ) => {\n if (!channel?.id || !client.user) {\n throw new Error('Channel has not been initialized');\n }\n\n const payload: Parameters<ChannelClass['deleteReaction']> = [messageId, type];\n\n if (!enableOfflineSupport) {\n await channel.deleteReaction(...payload);\n return;\n }\n\n removeReactionFromLocalState({\n channel,\n messageId,\n reactionType: type,\n user: client.user,\n });\n\n setMessages(channel.state.messages);\n\n await DBSyncManager.queueTask<StreamChatGenerics>({\n client,\n task: {\n channelId: channel.id,\n channelType: channel.type,\n messageId,\n payload,\n type: 'delete-reaction',\n },\n });\n };\n\n /**\n * THREAD METHODS\n */\n const openThread: ThreadContextValue<StreamChatGenerics>['openThread'] = (message) => {\n const newThreadMessages = message?.id ? channel?.state?.threads[message.id] || [] : [];\n setThread(message);\n setThreadMessages(newThreadMessages);\n };\n\n const closeThread: ThreadContextValue<StreamChatGenerics>['closeThread'] = useCallback(() => {\n setThread(null);\n setThreadMessages([]);\n }, [setThread, setThreadMessages]);\n\n // hard limit to prevent you from scrolling faster than 1 page per 2 seconds\n const loadMoreThreadFinished = useRef(\n debounce(\n (\n newThreadHasMore: boolean,\n updatedThreadMessages: ChannelState<StreamChatGenerics>['threads'][string],\n ) => {\n setThreadHasMore(newThreadHasMore);\n setThreadLoadingMore(false);\n setThreadMessages(updatedThreadMessages);\n },\n defaultDebounceInterval,\n debounceOptions,\n ),\n ).current;\n\n const loadMoreThread: ThreadContextValue<StreamChatGenerics>['loadMoreThread'] = async () => {\n if (threadLoadingMore || !thread?.id) {\n return;\n }\n setThreadLoadingMore(true);\n\n try {\n if (channel) {\n const parentID = thread.id;\n\n /**\n * In the channel is re-initializing, then threads may get wiped out during the process\n * (check `addMessagesSorted` method on channel.state). In those cases, we still want to\n * preserve the messages on active thread, so lets simply copy messages from UI state to\n * `channel.state`.\n */\n channel.state.threads[parentID] = threadMessages;\n const oldestMessageID = threadMessages?.[0]?.id;\n\n const limit = 50;\n const queryResponse = await channel.getReplies(parentID, {\n id_lt: oldestMessageID,\n limit,\n });\n\n const updatedHasMore = queryResponse.messages.length === limit;\n const updatedThreadMessages = channel.state.threads[parentID] || [];\n loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);\n }\n } catch (err) {\n console.warn('Message pagination request failed with error', err);\n if (err instanceof Error) {\n setError(err);\n } else {\n setError(true);\n }\n setThreadLoadingMore(false);\n throw err;\n }\n };\n\n const ownCapabilitiesContext = useCreateOwnCapabilitiesContext({\n channel,\n overrideCapabilities: overrideOwnCapabilities,\n });\n\n const channelContext = useCreateChannelContext({\n channel,\n disabled: !!channel?.data?.frozen && disableIfFrozenChannel,\n EmptyStateIndicator,\n enableMessageGroupingByUser,\n enforceUniqueReaction,\n error,\n giphyEnabled:\n giphyEnabled ??\n !!(clientChannelConfig?.commands || [])?.some((command) => command.name === 'giphy'),\n hideDateSeparators,\n hideStickyDateHeader,\n isAdmin,\n isChannelActive: shouldSyncChannel,\n isModerator,\n isOwner,\n lastRead,\n loadChannelAroundMessage,\n loadChannelAtMessage,\n loading,\n LoadingIndicator,\n markRead,\n maxTimeBetweenGroupedMessages,\n members,\n NetworkDownIndicator,\n read,\n reloadChannel,\n scrollToFirstUnreadThreshold,\n setLastRead,\n setTargetedMessage,\n StickyHeader,\n targetedMessage,\n threadList,\n watcherCount,\n watchers,\n });\n\n const inputMessageInputContext = useCreateInputMessageInputContext<StreamChatGenerics>({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength: maxMessageLengthProp ?? clientChannelConfig?.max_message_length ?? undefined,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n });\n\n const messageListContext = useCreatePaginatedMessageListContext({\n channelId,\n hasMore,\n hasNoMoreRecentMessagesToLoad,\n loadingMore: loadingMoreProp !== undefined ? loadingMoreProp : loadingMore,\n loadingMoreRecent:\n loadingMoreRecentProp !== undefined ? loadingMoreRecentProp : loadingMoreRecent,\n loadMore,\n loadMoreRecent,\n messages,\n setLoadingMore,\n setLoadingMoreRecent,\n });\n\n const messagesContext = useCreateMessagesContext({\n additionalTouchableProps,\n Attachment,\n AttachmentActions,\n AudioAttachment,\n Card,\n CardCover,\n CardFooter,\n CardHeader,\n channelId,\n DateHeader,\n deletedMessagesVisibilityType,\n deleteMessage,\n deleteReaction,\n disableTypingIndicator,\n dismissKeyboardOnMessageTouch,\n enableMessageGroupingByUser,\n FileAttachment,\n FileAttachmentGroup,\n FileAttachmentIcon,\n FlatList,\n forceAlignMessages,\n formatDate,\n Gallery,\n getMessagesGroupStyles,\n Giphy,\n giphyVersion,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction,\n handleRetry,\n handleThreadReply,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n initialScrollToFirstUnreadMessage: !messageId && initialScrollToFirstUnreadMessage, // when messageId is set, we scroll to the messageId instead of first unread\n InlineDateSeparator,\n InlineUnreadIndicator,\n isAttachmentEqual,\n legacyImageViewerSwipeBehaviour,\n markdownRules,\n Message,\n messageActions,\n MessageAvatar,\n MessageContent,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageList,\n MessagePinnedHeader,\n MessageReplies,\n MessageRepliesAvatars,\n MessageSimple,\n MessageStatus,\n MessageSystem,\n MessageText,\n myMessageTheme,\n onLongPressMessage,\n onPressInMessage,\n onPressMessage,\n OverlayReactionList,\n ReactionList,\n removeMessage,\n Reply,\n retrySendMessage,\n ScrollToBottomButton,\n selectReaction,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n targetedMessage,\n TypingIndicator,\n TypingIndicatorContainer,\n updateMessage,\n UrlPreview,\n VideoThumbnail,\n });\n\n const suggestionsContext = {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n };\n\n const threadContext = useCreateThreadContext({\n allowThreadMessagesInChannel,\n closeThread,\n loadMoreThread,\n openThread,\n reloadThread,\n setThreadLoadingMore,\n thread,\n threadHasMore,\n threadLoadingMore,\n threadMessages,\n });\n\n const typingContext = useCreateTypingContext({\n typing,\n });\n\n // TODO: replace the null view with appropriate message. Currently this is waiting a design decision.\n if (deleted) return null;\n\n if (!channel || (error && messages.length === 0)) {\n return <LoadingErrorIndicator error={error} listType='message' retry={reloadChannel} />;\n }\n\n if (!channel?.cid || !channel.watch) {\n return (\n <Text style={[styles.selectChannel, { color: black }, selectChannel]} testID='no-channel'>\n {t('Please select a channel first')}\n </Text>\n );\n }\n\n return (\n <KeyboardCompatibleView\n behavior={keyboardBehavior}\n enabled={!disableKeyboardCompatibleView}\n keyboardVerticalOffset={keyboardVerticalOffset}\n {...additionalKeyboardAvoidingViewProps}\n >\n <ChannelProvider<StreamChatGenerics> value={channelContext}>\n <OwnCapabilitiesProvider value={ownCapabilitiesContext}>\n <TypingProvider<StreamChatGenerics> value={typingContext}>\n <PaginatedMessageListProvider<StreamChatGenerics> value={messageListContext}>\n <MessagesProvider<StreamChatGenerics> value={messagesContext}>\n <ThreadProvider<StreamChatGenerics> value={threadContext}>\n <SuggestionsProvider<StreamChatGenerics> value={suggestionsContext}>\n <MessageInputProvider<StreamChatGenerics> value={inputMessageInputContext}>\n <View style={{ height: '100%' }}>{children}</View>\n </MessageInputProvider>\n </SuggestionsProvider>\n </ThreadProvider>\n </MessagesProvider>\n </PaginatedMessageListProvider>\n </TypingProvider>\n </OwnCapabilitiesProvider>\n </ChannelProvider>\n </KeyboardCompatibleView>\n );\n};\n\nexport type ChannelProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<ChannelPropsWithContext<StreamChatGenerics>, 'channel'>> &\n Pick<ChannelPropsWithContext<StreamChatGenerics>, 'channel'>;\n\n/**\n *\n * The wrapper component for a chat channel. Channel needs to be placed inside a Chat component\n * to receive the StreamChat client instance. MessageList, Thread, and MessageInput must be\n * children of the Channel component to receive the ChannelContext.\n *\n * @example ./Channel.md\n */\nexport const Channel = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChannelProps<StreamChatGenerics>>,\n) => {\n const { client, enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n const shouldSyncChannel = props.thread?.id ? !!props.threadList : true;\n\n const {\n members,\n messages,\n read,\n setMembers,\n setMessages,\n setRead,\n setThreadMessages,\n setTyping,\n setWatcherCount,\n setWatchers,\n threadMessages,\n typing,\n watcherCount,\n watchers,\n } = useChannelState<StreamChatGenerics>(\n props.channel,\n props.threadList ? props.thread?.id : undefined,\n );\n\n return (\n <ChannelWithContext<StreamChatGenerics>\n {...{\n client,\n enableOfflineSupport,\n t,\n }}\n {...props}\n shouldSyncChannel={shouldSyncChannel}\n {...{\n members,\n messages: props.messages || messages,\n read,\n setMembers,\n setMessages,\n setRead,\n setThreadMessages,\n setTyping,\n setWatcherCount,\n setWatchers,\n threadMessages,\n typing,\n watcherCount,\n watchers,\n }}\n />\n );\n};\n"],"mappings":"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"}
|