stream-chat-react-native-core 5.13.0 → 5.13.1-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.
Files changed (68) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +25 -23
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +4 -4
  4. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  5. package/lib/commonjs/components/ImageGallery/ImageGallery.js +8 -8
  6. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  7. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +8 -8
  8. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  9. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  10. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  11. package/lib/commonjs/i18n/en.json +1 -0
  12. package/lib/commonjs/i18n/fr.json +1 -0
  13. package/lib/commonjs/i18n/he.json +1 -0
  14. package/lib/commonjs/i18n/hi.json +1 -0
  15. package/lib/commonjs/i18n/it.json +1 -0
  16. package/lib/commonjs/i18n/ja.json +1 -0
  17. package/lib/commonjs/i18n/ko.json +1 -0
  18. package/lib/commonjs/i18n/nl.json +1 -0
  19. package/lib/commonjs/i18n/ru.json +1 -0
  20. package/lib/commonjs/i18n/tr.json +1 -0
  21. package/lib/commonjs/version.json +1 -1
  22. package/lib/module/components/Channel/Channel.js +25 -23
  23. package/lib/module/components/Channel/Channel.js.map +1 -1
  24. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +4 -4
  25. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  26. package/lib/module/components/ImageGallery/ImageGallery.js +8 -8
  27. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  28. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +8 -8
  29. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  30. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  31. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -1
  32. package/lib/module/i18n/en.json +1 -0
  33. package/lib/module/i18n/fr.json +1 -0
  34. package/lib/module/i18n/he.json +1 -0
  35. package/lib/module/i18n/hi.json +1 -0
  36. package/lib/module/i18n/it.json +1 -0
  37. package/lib/module/i18n/ja.json +1 -0
  38. package/lib/module/i18n/ko.json +1 -0
  39. package/lib/module/i18n/nl.json +1 -0
  40. package/lib/module/i18n/ru.json +1 -0
  41. package/lib/module/i18n/tr.json +1 -0
  42. package/lib/module/version.json +1 -1
  43. package/lib/typescript/i18n/en.json +1 -0
  44. package/lib/typescript/i18n/fr.json +1 -0
  45. package/lib/typescript/i18n/he.json +1 -0
  46. package/lib/typescript/i18n/hi.json +1 -0
  47. package/lib/typescript/i18n/it.json +1 -0
  48. package/lib/typescript/i18n/ja.json +1 -0
  49. package/lib/typescript/i18n/ko.json +1 -0
  50. package/lib/typescript/i18n/nl.json +1 -0
  51. package/lib/typescript/i18n/ru.json +1 -0
  52. package/lib/typescript/i18n/tr.json +1 -0
  53. package/lib/typescript/test-utils/BetterSqlite.d.ts +2 -2
  54. package/lib/typescript/utils/Streami18n.d.ts +1 -0
  55. package/package.json +1 -1
  56. package/src/components/Channel/Channel.tsx +3 -2
  57. package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +1 -1
  58. package/src/i18n/en.json +1 -0
  59. package/src/i18n/fr.json +1 -0
  60. package/src/i18n/he.json +1 -0
  61. package/src/i18n/hi.json +1 -0
  62. package/src/i18n/it.json +1 -0
  63. package/src/i18n/ja.json +1 -0
  64. package/src/i18n/ko.json +1 -0
  65. package/src/i18n/nl.json +1 -0
  66. package/src/i18n/ru.json +1 -0
  67. package/src/i18n/tr.json +1 -0
  68. 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","connectionChangedHandler","resyncChannel","handleEvent","event","_event$message","updatedThreadMessages","message","updatedThread","formatMessage","channelSubscriptions","clientSubscriptions","push","on","cid","DBSyncManager","onSyncStatusChange","online","forEach","s","unsubscribe","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","_ref9","_callee7","_messages$","oldListTopMessage","oldListTopMessageId","oldListBottomMessage","newListTopMessage","newListBottomMessage","parseMessage","failedMessages","failedThreadMessages","oldListTopMessageCreatedAt","oldListBottomMessageCreatedAt","newListTopMessageCreatedAt","newListBottomMessageCreatedAt","finalMessages","index","_callee7$","_context7","clearMessages","addMessagesSorted","_message$pinned_at","_message$updated_at","toString","pinned_at","updated_at","filter","status","MessageStatusTypes","FAILED","map","findIndex","slice","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","filename","contentType","uploadResponse","response","_callee12$","_context12","originalFile","uri","image_url","isLocalUrl","replace","lookup","sendImage","asset_url","t1","sendFile","name","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, 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, 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]);\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 const connectionChangedHandler = () => {\n if (shouldSyncChannel) {\n resyncChannel();\n }\n };\n\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 if (event.type === 'typing.start' || event.type === 'typing.stop') {\n copyTypingState();\n } else if (event.type === 'message.read') {\n copyReadState();\n } else if (event.type === 'message.new') {\n copyMessagesState();\n } else if (channel) {\n copyChannelState();\n }\n }\n };\n\n useEffect(() => {\n const channelSubscriptions: Array<ReturnType<ChannelType['on']>> = [];\n const clientSubscriptions: Array<ReturnType<StreamChat['on']>> = [];\n\n if (!channel) return;\n\n clientSubscriptions.push(\n client.on('channel.deleted', (event) => {\n if (event.cid === channel.cid) {\n setDeleted(true);\n }\n }),\n );\n\n if (enableOfflineSupport) {\n clientSubscriptions.push(DBSyncManager.onSyncStatusChange(connectionChangedHandler));\n } else {\n clientSubscriptions.push(\n client.on('connection.changed', (event) => {\n if (event.online) {\n connectionChangedHandler();\n }\n }),\n );\n }\n\n channelSubscriptions.push(channel.on(handleEvent));\n\n return () => {\n clientSubscriptions.forEach((s) => s.unsubscribe());\n channelSubscriptions.forEach((s) => s.unsubscribe());\n };\n }, [channelId, connectionChangedHandler, handleEvent]);\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 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\n channel.state.clearMessages();\n channel.state.addMessagesSorted(finalMessages);\n\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 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 const filename = file.uri.replace(/^(file:\\/\\/|content:\\/\\/|assets-library:\\/\\/)/, '');\n const contentType = lookup(filename) || 'multipart/form-data';\n\n const uploadResponse = doImageUploadRequest\n ? await doImageUploadRequest(file, channel)\n : await channel.sendImage(file?.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","connectionChangedHandler","resyncChannel","handleEvent","event","_event$message","updatedThreadMessages","message","updatedThread","formatMessage","channelSubscriptions","clientSubscriptions","push","on","cid","DBSyncManager","onSyncStatusChange","online","forEach","s","unsubscribe","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","_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","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","filename","contentType","uploadResponse","response","_callee12$","_context12","originalFile","uri","image_url","isLocalUrl","replace","lookup","sendImage","asset_url","t1","sendFile","name","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, 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, 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]);\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 const connectionChangedHandler = () => {\n if (shouldSyncChannel) {\n resyncChannel();\n }\n };\n\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 if (event.type === 'typing.start' || event.type === 'typing.stop') {\n copyTypingState();\n } else if (event.type === 'message.read') {\n copyReadState();\n } else if (event.type === 'message.new') {\n copyMessagesState();\n } else if (channel) {\n copyChannelState();\n }\n }\n };\n\n useEffect(() => {\n const channelSubscriptions: Array<ReturnType<ChannelType['on']>> = [];\n const clientSubscriptions: Array<ReturnType<StreamChat['on']>> = [];\n\n if (!channel) return;\n\n clientSubscriptions.push(\n client.on('channel.deleted', (event) => {\n if (event.cid === channel.cid) {\n setDeleted(true);\n }\n }),\n );\n\n if (enableOfflineSupport) {\n clientSubscriptions.push(DBSyncManager.onSyncStatusChange(connectionChangedHandler));\n } else {\n clientSubscriptions.push(\n client.on('connection.changed', (event) => {\n if (event.online) {\n connectionChangedHandler();\n }\n }),\n );\n }\n\n channelSubscriptions.push(channel.on(handleEvent));\n\n return () => {\n clientSubscriptions.forEach((s) => s.unsubscribe());\n channelSubscriptions.forEach((s) => s.unsubscribe());\n };\n }, [channelId, connectionChangedHandler, handleEvent]);\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 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 const filename = file.uri.replace(/^(file:\\/\\/|content:\\/\\/|assets-library:\\/\\/)/, '');\n const contentType = lookup(filename) || 'multipart/form-data';\n\n const uploadResponse = doImageUploadRequest\n ? await doImageUploadRequest(file, channel)\n : await channel.sendImage(file?.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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"}