stream-chat-react-native-core 5.5.1-beta.1 → 5.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Attachment.js +1 -1
- package/lib/commonjs/components/Attachment/AttachmentActions.js +1 -1
- package/lib/commonjs/components/Attachment/AudioAttachment.js +1 -1
- package/lib/commonjs/components/Attachment/Card.js +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
- package/lib/commonjs/components/Attachment/FileIcon.js +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +20 -4
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +1 -1
- package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
- package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js +1 -1
- package/lib/commonjs/components/Channel/Channel.js +537 -155
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +6 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js +5 -16
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +1 -1
- package/lib/commonjs/components/ChannelList/Skeleton.js +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +112 -42
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
- package/lib/commonjs/components/Chat/Chat.js +17 -21
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -4
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/ImageBackground.js +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
- package/lib/commonjs/components/Indicators/LoadingDot.js +1 -1
- package/lib/commonjs/components/Indicators/LoadingDots.js +1 -1
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +1 -1
- package/lib/commonjs/components/Indicators/LoadingIndicator.js +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
- package/lib/commonjs/components/Message/Message.js +22 -11
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +15 -13
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +9 -30
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +20 -18
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/AttachButton.js +1 -1
- package/lib/commonjs/components/MessageInput/CommandsButton.js +1 -1
- package/lib/commonjs/components/MessageInput/CooldownTimer.js +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +32 -22
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +52 -20
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +40 -28
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +1 -1
- package/lib/commonjs/components/MessageInput/SendButton.js +2 -2
- package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +1 -1
- package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +1 -1
- package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +1 -1
- package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +1 -1
- package/lib/commonjs/components/MessageList/DateHeader.js +1 -1
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +1 -1
- package/lib/commonjs/components/MessageList/MessageSystem.js +1 -1
- package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +1 -1
- package/lib/commonjs/components/MessageList/TypingIndicator.js +1 -1
- package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
- package/lib/commonjs/components/ProgressControl/ProgressControl.js +1 -1
- package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js +1 -1
- package/lib/commonjs/components/Reply/Reply.js +1 -1
- package/lib/commonjs/components/Spinner/Spinner.js +1 -1
- package/lib/commonjs/components/Thread/Thread.js +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +1 -1
- package/lib/commonjs/components/index.js +0 -13
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +1 -1
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +3 -3
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/debugContext/DebugContext.js +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +23 -14
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +3 -3
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +1 -1
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +1 -1
- package/lib/commonjs/contexts/themeContext/ThemeContext.js +1 -1
- package/lib/commonjs/contexts/threadContext/ThreadContext.js +1 -1
- package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
- package/lib/commonjs/contexts/typingContext/TypingContext.js +1 -1
- package/lib/commonjs/hooks/useTranslatedMessage.js +1 -1
- package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/commonjs/icons/ArrowRight.js +1 -1
- package/lib/commonjs/icons/AtMentions.js +1 -1
- package/lib/commonjs/icons/Attach.js +1 -1
- package/lib/commonjs/icons/Audio.js +1 -1
- package/lib/commonjs/icons/CSV.js +1 -1
- package/lib/commonjs/icons/Camera.js +1 -1
- package/lib/commonjs/icons/Check.js +1 -1
- package/lib/commonjs/icons/CheckAll.js +1 -1
- package/lib/commonjs/icons/CheckSend.js +1 -1
- package/lib/commonjs/icons/CircleClose.js +1 -1
- package/lib/commonjs/icons/CirclePlus.js +1 -1
- package/lib/commonjs/icons/CircleRight.js +1 -1
- package/lib/commonjs/icons/Close.js +1 -1
- package/lib/commonjs/icons/Copy.js +1 -1
- package/lib/commonjs/icons/CurveLineLeftUp.js +1 -1
- package/lib/commonjs/icons/DOC.js +1 -1
- package/lib/commonjs/icons/DOCX.js +1 -1
- package/lib/commonjs/icons/Delete.js +1 -1
- package/lib/commonjs/icons/Down.js +1 -1
- package/lib/commonjs/icons/DownloadArrow.js +1 -1
- package/lib/commonjs/icons/DownloadCloud.js +1 -1
- package/lib/commonjs/icons/Edit.js +1 -1
- package/lib/commonjs/icons/Error.js +1 -1
- package/lib/commonjs/icons/Eye.js +1 -1
- package/lib/commonjs/icons/Flag.js +1 -1
- package/lib/commonjs/icons/Folder.js +1 -1
- package/lib/commonjs/icons/GenericFile.js +1 -1
- package/lib/commonjs/icons/GiphyIcon.js +1 -1
- package/lib/commonjs/icons/Grid.js +1 -1
- package/lib/commonjs/icons/Group.js +1 -1
- package/lib/commonjs/icons/HTML.js +1 -1
- package/lib/commonjs/icons/Imgur.js +1 -1
- package/lib/commonjs/icons/LOLReaction.js +1 -1
- package/lib/commonjs/icons/Lightning.js +1 -1
- package/lib/commonjs/icons/Link.js +1 -1
- package/lib/commonjs/icons/Loading.js +1 -1
- package/lib/commonjs/icons/Logo.js +1 -1
- package/lib/commonjs/icons/LoveReaction.js +1 -1
- package/lib/commonjs/icons/MD.js +1 -1
- package/lib/commonjs/icons/MailOpen.js +1 -1
- package/lib/commonjs/icons/MenuPointHorizontal.js +1 -1
- package/lib/commonjs/icons/MenuPointVertical.js +1 -1
- package/lib/commonjs/icons/MessageFlag.js +1 -1
- package/lib/commonjs/icons/MessageIcon.js +1 -1
- package/lib/commonjs/icons/Mute.js +1 -1
- package/lib/commonjs/icons/Notification.js +1 -1
- package/lib/commonjs/icons/ODT.js +1 -1
- package/lib/commonjs/icons/PDF.js +1 -1
- package/lib/commonjs/icons/PPT.js +1 -1
- package/lib/commonjs/icons/PPTX.js +1 -1
- package/lib/commonjs/icons/Pause.js +1 -1
- package/lib/commonjs/icons/Picture.js +1 -1
- package/lib/commonjs/icons/Pin.js +1 -1
- package/lib/commonjs/icons/PinHeader.js +1 -1
- package/lib/commonjs/icons/Play.js +1 -1
- package/lib/commonjs/icons/RAR.js +1 -1
- package/lib/commonjs/icons/RTF.js +1 -1
- package/lib/commonjs/icons/Recorder.js +1 -1
- package/lib/commonjs/icons/Refresh.js +1 -1
- package/lib/commonjs/icons/SEVEN_Z.js +1 -1
- package/lib/commonjs/icons/Search.js +1 -1
- package/lib/commonjs/icons/SendRight.js +1 -1
- package/lib/commonjs/icons/SendUp.js +1 -1
- package/lib/commonjs/icons/Share.js +1 -1
- package/lib/commonjs/icons/ShareRightArrow.js +1 -1
- package/lib/commonjs/icons/Smile.js +1 -1
- package/lib/commonjs/icons/Sound.js +1 -1
- package/lib/commonjs/icons/TAR.js +1 -1
- package/lib/commonjs/icons/TXT.js +1 -1
- package/lib/commonjs/icons/ThreadReply.js +1 -1
- package/lib/commonjs/icons/ThumbsDownReaction.js +1 -1
- package/lib/commonjs/icons/ThumbsUpReaction.js +1 -1
- package/lib/commonjs/icons/Time.js +1 -1
- package/lib/commonjs/icons/Unknown.js +1 -1
- package/lib/commonjs/icons/Unpin.js +1 -1
- package/lib/commonjs/icons/User.js +1 -1
- package/lib/commonjs/icons/UserAdd.js +1 -1
- package/lib/commonjs/icons/UserAdmin.js +1 -1
- package/lib/commonjs/icons/UserDelete.js +1 -1
- package/lib/commonjs/icons/UserMinus.js +1 -1
- package/lib/commonjs/icons/Video.js +1 -1
- package/lib/commonjs/icons/Warning.js +1 -1
- package/lib/commonjs/icons/WutReaction.js +1 -1
- package/lib/commonjs/icons/XLS.js +1 -1
- package/lib/commonjs/icons/XLSX.js +1 -1
- package/lib/commonjs/icons/ZIP.js +1 -1
- package/lib/commonjs/icons/utils/base.js +1 -1
- package/lib/commonjs/mock-builders/DB/mock.js +2 -2
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteMessage.js +20 -0
- package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -0
- package/lib/commonjs/mock-builders/api/deleteReaction.js +21 -0
- package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -0
- package/lib/commonjs/mock-builders/api/sendReaction.js +21 -0
- package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -0
- package/lib/commonjs/mock-builders/event/connectionChanged.js +2 -0
- package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/commonjs/store/QuickSqliteClient.js +40 -51
- package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
- package/lib/commonjs/store/apis/addPendingTask.js +37 -0
- package/lib/commonjs/store/apis/addPendingTask.js.map +1 -0
- package/lib/commonjs/store/apis/deleteMessage.js +26 -0
- package/lib/commonjs/store/apis/deleteMessage.js.map +1 -0
- package/lib/commonjs/store/apis/deletePendingTask.js +22 -0
- package/lib/commonjs/store/apis/deletePendingTask.js.map +1 -0
- package/lib/commonjs/store/apis/deleteReaction.js +30 -0
- package/lib/commonjs/store/apis/deleteReaction.js.map +1 -0
- package/lib/commonjs/store/apis/getChannelMessages.js +3 -3
- package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
- package/lib/commonjs/store/apis/getChannels.js +1 -1
- package/lib/commonjs/store/apis/getChannels.js.map +1 -1
- package/lib/commonjs/store/apis/getPendingTasks.js +26 -0
- package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -0
- package/lib/commonjs/store/apis/index.js +13 -0
- package/lib/commonjs/store/apis/index.js.map +1 -1
- package/lib/commonjs/store/apis/insertReaction.js +28 -0
- package/lib/commonjs/store/apis/insertReaction.js.map +1 -0
- package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
- package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
- package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapMessageToStorable.js +3 -1
- package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/commonjs/store/mappers/mapStorableToTask.js +23 -0
- package/lib/commonjs/store/mappers/mapStorableToTask.js.map +1 -0
- package/lib/commonjs/store/mappers/mapTaskToStorable.js +18 -0
- package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -0
- package/lib/commonjs/store/schema.js +11 -0
- package/lib/commonjs/store/schema.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js +24 -0
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -0
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +1 -1
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +8 -1
- package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +2 -2
- package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +1 -1
- package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -1
- package/lib/commonjs/utils/DBSyncManager.js +436 -0
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -0
- package/lib/commonjs/utils/addReactionToLocalState.js +92 -0
- package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -0
- package/lib/commonjs/utils/pendingTaskUtils.js +302 -0
- package/lib/commonjs/utils/pendingTaskUtils.js.map +1 -0
- package/lib/commonjs/utils/removeReactionFromLocalState.js +39 -0
- package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -0
- package/lib/commonjs/utils/utils.js +9 -3
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +1 -1
- package/lib/module/components/Attachment/AttachmentActions.js +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +1 -1
- package/lib/module/components/Attachment/Card.js +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
- package/lib/module/components/Attachment/FileIcon.js +1 -1
- package/lib/module/components/Attachment/Gallery.js +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +20 -4
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +1 -1
- package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
- package/lib/module/components/Attachment/ImageLoadingIndicator.js +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
- package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
- package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
- package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
- package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
- package/lib/module/components/Avatar/Avatar.js +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js +1 -1
- package/lib/module/components/Channel/Channel.js +537 -155
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +6 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js +5 -16
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
- package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js +1 -1
- package/lib/module/components/ChannelList/Skeleton.js +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +112 -42
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelAvatar.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
- package/lib/module/components/Chat/Chat.js +17 -21
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -4
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/ImageBackground.js +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGridHandle.js +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
- package/lib/module/components/Indicators/LoadingDot.js +1 -1
- package/lib/module/components/Indicators/LoadingDots.js +1 -1
- package/lib/module/components/Indicators/LoadingErrorIndicator.js +1 -1
- package/lib/module/components/Indicators/LoadingIndicator.js +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
- package/lib/module/components/Message/Message.js +22 -11
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js +15 -13
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageReplies.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js +9 -30
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js +20 -18
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/AttachButton.js +1 -1
- package/lib/module/components/MessageInput/CommandsButton.js +1 -1
- package/lib/module/components/MessageInput/CooldownTimer.js +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +32 -22
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +52 -20
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +40 -28
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/MoreOptionsButton.js +1 -1
- package/lib/module/components/MessageInput/SendButton.js +2 -2
- package/lib/module/components/MessageInput/SendButton.js.map +1 -1
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
- package/lib/module/components/MessageInput/UploadProgressIndicator.js +1 -1
- package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +1 -1
- package/lib/module/components/MessageInput/components/InputGiphySearch.js +1 -1
- package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +1 -1
- package/lib/module/components/MessageList/DateHeader.js +1 -1
- package/lib/module/components/MessageList/InlineDateSeparator.js +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
- package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
- package/lib/module/components/MessageList/InlineUnreadIndicator.js +1 -1
- package/lib/module/components/MessageList/MessageList.js +1 -1
- package/lib/module/components/MessageList/MessageSystem.js +1 -1
- package/lib/module/components/MessageList/NetworkDownIndicator.js +1 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js +1 -1
- package/lib/module/components/MessageList/TypingIndicator.js +1 -1
- package/lib/module/components/MessageList/TypingIndicatorContainer.js +1 -1
- package/lib/module/components/MessageOverlay/MessageActionList.js +1 -1
- package/lib/module/components/MessageOverlay/MessageActionListItem.js +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +1 -1
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactions.js +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
- package/lib/module/components/ProgressControl/ProgressControl.js +1 -1
- package/lib/module/components/RTLComponents/WritingDirectionAwareText.js +1 -1
- package/lib/module/components/Reply/Reply.js +1 -1
- package/lib/module/components/Spinner/Spinner.js +1 -1
- package/lib/module/components/Thread/Thread.js +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +1 -1
- package/lib/module/components/index.js +0 -13
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js +1 -1
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +3 -3
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/debugContext/DebugContext.js +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
- package/lib/module/contexts/keyboardContext/KeyboardContext.js +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +23 -14
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +3 -3
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +1 -1
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +1 -1
- package/lib/module/contexts/themeContext/ThemeContext.js +1 -1
- package/lib/module/contexts/threadContext/ThreadContext.js +1 -1
- package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
- package/lib/module/contexts/typingContext/TypingContext.js +1 -1
- package/lib/module/hooks/useTranslatedMessage.js +1 -1
- package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/module/icons/ArrowRight.js +1 -1
- package/lib/module/icons/AtMentions.js +1 -1
- package/lib/module/icons/Attach.js +1 -1
- package/lib/module/icons/Audio.js +1 -1
- package/lib/module/icons/CSV.js +1 -1
- package/lib/module/icons/Camera.js +1 -1
- package/lib/module/icons/Check.js +1 -1
- package/lib/module/icons/CheckAll.js +1 -1
- package/lib/module/icons/CheckSend.js +1 -1
- package/lib/module/icons/CircleClose.js +1 -1
- package/lib/module/icons/CirclePlus.js +1 -1
- package/lib/module/icons/CircleRight.js +1 -1
- package/lib/module/icons/Close.js +1 -1
- package/lib/module/icons/Copy.js +1 -1
- package/lib/module/icons/CurveLineLeftUp.js +1 -1
- package/lib/module/icons/DOC.js +1 -1
- package/lib/module/icons/DOCX.js +1 -1
- package/lib/module/icons/Delete.js +1 -1
- package/lib/module/icons/Down.js +1 -1
- package/lib/module/icons/DownloadArrow.js +1 -1
- package/lib/module/icons/DownloadCloud.js +1 -1
- package/lib/module/icons/Edit.js +1 -1
- package/lib/module/icons/Error.js +1 -1
- package/lib/module/icons/Eye.js +1 -1
- package/lib/module/icons/Flag.js +1 -1
- package/lib/module/icons/Folder.js +1 -1
- package/lib/module/icons/GenericFile.js +1 -1
- package/lib/module/icons/GiphyIcon.js +1 -1
- package/lib/module/icons/Grid.js +1 -1
- package/lib/module/icons/Group.js +1 -1
- package/lib/module/icons/HTML.js +1 -1
- package/lib/module/icons/Imgur.js +1 -1
- package/lib/module/icons/LOLReaction.js +1 -1
- package/lib/module/icons/Lightning.js +1 -1
- package/lib/module/icons/Link.js +1 -1
- package/lib/module/icons/Loading.js +1 -1
- package/lib/module/icons/Logo.js +1 -1
- package/lib/module/icons/LoveReaction.js +1 -1
- package/lib/module/icons/MD.js +1 -1
- package/lib/module/icons/MailOpen.js +1 -1
- package/lib/module/icons/MenuPointHorizontal.js +1 -1
- package/lib/module/icons/MenuPointVertical.js +1 -1
- package/lib/module/icons/MessageFlag.js +1 -1
- package/lib/module/icons/MessageIcon.js +1 -1
- package/lib/module/icons/Mute.js +1 -1
- package/lib/module/icons/Notification.js +1 -1
- package/lib/module/icons/ODT.js +1 -1
- package/lib/module/icons/PDF.js +1 -1
- package/lib/module/icons/PPT.js +1 -1
- package/lib/module/icons/PPTX.js +1 -1
- package/lib/module/icons/Pause.js +1 -1
- package/lib/module/icons/Picture.js +1 -1
- package/lib/module/icons/Pin.js +1 -1
- package/lib/module/icons/PinHeader.js +1 -1
- package/lib/module/icons/Play.js +1 -1
- package/lib/module/icons/RAR.js +1 -1
- package/lib/module/icons/RTF.js +1 -1
- package/lib/module/icons/Recorder.js +1 -1
- package/lib/module/icons/Refresh.js +1 -1
- package/lib/module/icons/SEVEN_Z.js +1 -1
- package/lib/module/icons/Search.js +1 -1
- package/lib/module/icons/SendRight.js +1 -1
- package/lib/module/icons/SendUp.js +1 -1
- package/lib/module/icons/Share.js +1 -1
- package/lib/module/icons/ShareRightArrow.js +1 -1
- package/lib/module/icons/Smile.js +1 -1
- package/lib/module/icons/Sound.js +1 -1
- package/lib/module/icons/TAR.js +1 -1
- package/lib/module/icons/TXT.js +1 -1
- package/lib/module/icons/ThreadReply.js +1 -1
- package/lib/module/icons/ThumbsDownReaction.js +1 -1
- package/lib/module/icons/ThumbsUpReaction.js +1 -1
- package/lib/module/icons/Time.js +1 -1
- package/lib/module/icons/Unknown.js +1 -1
- package/lib/module/icons/Unpin.js +1 -1
- package/lib/module/icons/User.js +1 -1
- package/lib/module/icons/UserAdd.js +1 -1
- package/lib/module/icons/UserAdmin.js +1 -1
- package/lib/module/icons/UserDelete.js +1 -1
- package/lib/module/icons/UserMinus.js +1 -1
- package/lib/module/icons/Video.js +1 -1
- package/lib/module/icons/Warning.js +1 -1
- package/lib/module/icons/WutReaction.js +1 -1
- package/lib/module/icons/XLS.js +1 -1
- package/lib/module/icons/XLSX.js +1 -1
- package/lib/module/icons/ZIP.js +1 -1
- package/lib/module/icons/utils/base.js +1 -1
- package/lib/module/mock-builders/DB/mock.js +2 -2
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/mock-builders/api/deleteMessage.js +20 -0
- package/lib/module/mock-builders/api/deleteMessage.js.map +1 -0
- package/lib/module/mock-builders/api/deleteReaction.js +21 -0
- package/lib/module/mock-builders/api/deleteReaction.js.map +1 -0
- package/lib/module/mock-builders/api/sendReaction.js +21 -0
- package/lib/module/mock-builders/api/sendReaction.js.map +1 -0
- package/lib/module/mock-builders/event/connectionChanged.js +2 -0
- package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/module/store/QuickSqliteClient.js +40 -51
- package/lib/module/store/QuickSqliteClient.js.map +1 -1
- package/lib/module/store/apis/addPendingTask.js +37 -0
- package/lib/module/store/apis/addPendingTask.js.map +1 -0
- package/lib/module/store/apis/deleteMessage.js +26 -0
- package/lib/module/store/apis/deleteMessage.js.map +1 -0
- package/lib/module/store/apis/deletePendingTask.js +22 -0
- package/lib/module/store/apis/deletePendingTask.js.map +1 -0
- package/lib/module/store/apis/deleteReaction.js +30 -0
- package/lib/module/store/apis/deleteReaction.js.map +1 -0
- package/lib/module/store/apis/getChannelMessages.js +3 -3
- package/lib/module/store/apis/getChannelMessages.js.map +1 -1
- package/lib/module/store/apis/getChannels.js +1 -1
- package/lib/module/store/apis/getChannels.js.map +1 -1
- package/lib/module/store/apis/getPendingTasks.js +26 -0
- package/lib/module/store/apis/getPendingTasks.js.map +1 -0
- package/lib/module/store/apis/index.js +13 -0
- package/lib/module/store/apis/index.js.map +1 -1
- package/lib/module/store/apis/insertReaction.js +28 -0
- package/lib/module/store/apis/insertReaction.js.map +1 -0
- package/lib/module/store/apis/updateMessage.js.map +1 -1
- package/lib/module/store/apis/updateReaction.js.map +1 -1
- package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapMessageToStorable.js +3 -1
- package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/module/store/mappers/mapStorableToTask.js +23 -0
- package/lib/module/store/mappers/mapStorableToTask.js.map +1 -0
- package/lib/module/store/mappers/mapTaskToStorable.js +18 -0
- package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -0
- package/lib/module/store/schema.js +11 -0
- package/lib/module/store/schema.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendOrderByClause.js +24 -0
- package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -0
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js +1 -1
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createSelectQuery.js +8 -1
- package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createUpdateQuery.js +2 -2
- package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
- package/lib/module/store/sqlite-utils/createUpsertQuery.js +1 -1
- package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -1
- package/lib/module/utils/DBSyncManager.js +436 -0
- package/lib/module/utils/DBSyncManager.js.map +1 -0
- package/lib/module/utils/addReactionToLocalState.js +92 -0
- package/lib/module/utils/addReactionToLocalState.js.map +1 -0
- package/lib/module/utils/pendingTaskUtils.js +302 -0
- package/lib/module/utils/pendingTaskUtils.js.map +1 -0
- package/lib/module/utils/removeReactionFromLocalState.js +39 -0
- package/lib/module/utils/removeReactionFromLocalState.js.map +1 -0
- package/lib/module/utils/utils.js +9 -3
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +2 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/components/Message/Message.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -1
- package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +2 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +2 -1
- package/lib/typescript/components/index.d.ts +0 -1
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -2
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -0
- package/lib/typescript/store/apis/addPendingTask.d.ts +2 -0
- package/lib/typescript/store/apis/deleteMessage.d.ts +4 -0
- package/lib/typescript/store/apis/deletePendingTask.d.ts +3 -0
- package/lib/typescript/store/apis/deleteReaction.d.ts +6 -0
- package/lib/typescript/store/apis/getChannelMessages.d.ts +1 -1
- package/lib/typescript/store/apis/getPendingTasks.d.ts +3 -0
- package/lib/typescript/store/apis/index.d.ts +1 -0
- package/lib/typescript/store/apis/insertReaction.d.ts +6 -0
- package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
- package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
- package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -1
- package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
- package/lib/typescript/store/mappers/mapStorableToTask.d.ts +2 -0
- package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +34 -0
- package/lib/typescript/store/schema.d.ts +12 -1
- package/lib/typescript/store/sqlite-utils/appendOrderByClause.d.ts +3 -0
- package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +1 -1
- package/lib/typescript/store/types.d.ts +25 -0
- package/lib/typescript/types/types.d.ts +3 -1
- package/lib/typescript/utils/DBSyncManager.d.ts +47 -0
- package/lib/typescript/utils/addReactionToLocalState.d.ts +9 -0
- package/lib/typescript/utils/pendingTaskUtils.d.ts +13 -0
- package/lib/typescript/utils/removeReactionFromLocalState.d.ts +8 -0
- package/lib/typescript/utils/utils.d.ts +3 -3
- package/package.json +2 -2
- package/src/__tests__/offline-feature.test.js +19 -2
- package/src/__tests__/optimistic-update.test.js +368 -0
- package/src/components/Attachment/GalleryImage.tsx +14 -2
- package/src/components/Channel/Channel.tsx +270 -62
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +6 -0
- package/src/components/ChannelList/ChannelList.tsx +2 -10
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +0 -1
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +75 -27
- package/src/components/Chat/Chat.tsx +5 -9
- package/src/components/Chat/__tests__/Chat.test.js +1 -1
- package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
- package/src/components/Message/Message.tsx +18 -2
- package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -1
- package/src/components/Message/hooks/useMessageActionHandlers.ts +10 -21
- package/src/components/Message/hooks/useMessageActions.tsx +9 -4
- package/src/components/MessageInput/FileUploadPreview.tsx +8 -2
- package/src/components/MessageInput/ImageUploadPreview.tsx +37 -8
- package/src/components/MessageInput/MessageInput.tsx +17 -3
- package/src/components/MessageInput/SendButton.tsx +1 -1
- package/src/components/index.ts +0 -1
- package/src/contexts/chatContext/ChatContext.tsx +1 -2
- package/src/contexts/messageInputContext/MessageInputContext.tsx +29 -10
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +29 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +4 -1
- package/src/hooks/useTranslatedMessage.ts +1 -1
- package/src/mock-builders/DB/mock.ts +2 -2
- package/src/mock-builders/api/deleteMessage.js +18 -0
- package/src/mock-builders/api/deleteReaction.js +19 -0
- package/src/mock-builders/api/sendReaction.tsx +19 -0
- package/src/mock-builders/event/connectionChanged.js +2 -1
- package/src/store/QuickSqliteClient.ts +39 -37
- package/src/store/apis/addPendingTask.ts +24 -0
- package/src/store/apis/deleteMessage.ts +13 -0
- package/src/store/apis/deletePendingTask.ts +12 -0
- package/src/store/apis/deleteReaction.ts +26 -0
- package/src/store/apis/getChannelMessages.ts +1 -1
- package/src/store/apis/getChannels.ts +2 -2
- package/src/store/apis/getPendingTasks.ts +13 -0
- package/src/store/apis/index.ts +1 -0
- package/src/store/apis/insertReaction.ts +29 -0
- package/src/store/apis/updateMessage.ts +2 -2
- package/src/store/apis/updateReaction.ts +2 -2
- package/src/store/mappers/mapDateTimeToStorable.ts +1 -1
- package/src/store/mappers/mapMessageToStorable.ts +8 -2
- package/src/store/mappers/mapStorableToTask.ts +13 -0
- package/src/store/mappers/mapTaskToStorable.ts +7 -0
- package/src/store/schema.ts +25 -1
- package/src/store/sqlite-utils/appendOrderByClause.ts +24 -0
- package/src/store/sqlite-utils/createCreateTableQuery.ts +2 -2
- package/src/store/sqlite-utils/createSelectQuery.ts +4 -1
- package/src/store/sqlite-utils/createUpdateQuery.ts +3 -2
- package/src/store/sqlite-utils/createUpsertQuery.ts +1 -1
- package/src/store/types.ts +33 -0
- package/src/types/types.ts +4 -1
- package/src/utils/DBSyncManager.ts +222 -0
- package/src/utils/addReactionToLocalState.ts +87 -0
- package/src/utils/pendingTaskUtils.ts +131 -0
- package/src/utils/removeReactionFromLocalState.ts +39 -0
- package/src/utils/utils.ts +12 -4
- package/src/version.json +1 -1
- package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js +0 -171
- package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
- package/lib/module/components/Chat/hooks/useConnectionRecovered.js +0 -171
- package/lib/module/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
- package/lib/typescript/components/Chat/hooks/useConnectionRecovered.d.ts +0 -10
- package/src/components/Chat/hooks/useConnectionRecovered.ts +0 -92
|
@@ -19,6 +19,8 @@ var _reactNative = require("react-native");
|
|
|
19
19
|
|
|
20
20
|
var _useCountdown2 = require("./hooks/useCountdown");
|
|
21
21
|
|
|
22
|
+
var _contexts = require("../../contexts");
|
|
23
|
+
|
|
22
24
|
var _AttachmentPickerContext = require("../../contexts/attachmentPickerContext/AttachmentPickerContext");
|
|
23
25
|
|
|
24
26
|
var _ChannelContext = require("../../contexts/channelContext/ChannelContext");
|
|
@@ -42,7 +44,7 @@ var _AttachmentSelectionBar = require("../AttachmentPicker/components/Attachment
|
|
|
42
44
|
var _AutoCompleteInput = require("../AutoCompleteInput/AutoCompleteInput");
|
|
43
45
|
|
|
44
46
|
var _this = this,
|
|
45
|
-
_jsxFileName = "/
|
|
47
|
+
_jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/MessageInput/MessageInput.tsx";
|
|
46
48
|
|
|
47
49
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
48
50
|
|
|
@@ -126,6 +128,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
126
128
|
InputEditingStateHeader = props.InputEditingStateHeader,
|
|
127
129
|
InputGiphySearch = props.InputGiphySearch,
|
|
128
130
|
InputReplyStateHeader = props.InputReplyStateHeader,
|
|
131
|
+
isOnline = props.isOnline,
|
|
129
132
|
isValidMessage = props.isValidMessage,
|
|
130
133
|
maxNumberOfFiles = props.maxNumberOfFiles,
|
|
131
134
|
members = props.members,
|
|
@@ -427,21 +430,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
427
430
|
__self: _this,
|
|
428
431
|
__source: {
|
|
429
432
|
fileName: _jsxFileName,
|
|
430
|
-
lineNumber:
|
|
433
|
+
lineNumber: 482,
|
|
431
434
|
columnNumber: 7
|
|
432
435
|
}
|
|
433
436
|
}, editing && _react["default"].createElement(InputEditingStateHeader, {
|
|
434
437
|
__self: _this,
|
|
435
438
|
__source: {
|
|
436
439
|
fileName: _jsxFileName,
|
|
437
|
-
lineNumber:
|
|
440
|
+
lineNumber: 490,
|
|
438
441
|
columnNumber: 21
|
|
439
442
|
}
|
|
440
443
|
}), quotedMessage && _react["default"].createElement(InputReplyStateHeader, {
|
|
441
444
|
__self: _this,
|
|
442
445
|
__source: {
|
|
443
446
|
fileName: _jsxFileName,
|
|
444
|
-
lineNumber:
|
|
447
|
+
lineNumber: 491,
|
|
445
448
|
columnNumber: 27
|
|
446
449
|
}
|
|
447
450
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -449,7 +452,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
449
452
|
__self: _this,
|
|
450
453
|
__source: {
|
|
451
454
|
fileName: _jsxFileName,
|
|
452
|
-
lineNumber:
|
|
455
|
+
lineNumber: 492,
|
|
453
456
|
columnNumber: 9
|
|
454
457
|
}
|
|
455
458
|
}, Input ? _react["default"].createElement(Input, {
|
|
@@ -458,7 +461,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
458
461
|
__self: _this,
|
|
459
462
|
__source: {
|
|
460
463
|
fileName: _jsxFileName,
|
|
461
|
-
lineNumber:
|
|
464
|
+
lineNumber: 494,
|
|
462
465
|
columnNumber: 13
|
|
463
466
|
}
|
|
464
467
|
}) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
|
|
@@ -466,14 +469,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
466
469
|
__self: _this,
|
|
467
470
|
__source: {
|
|
468
471
|
fileName: _jsxFileName,
|
|
469
|
-
lineNumber:
|
|
472
|
+
lineNumber: 500,
|
|
470
473
|
columnNumber: 15
|
|
471
474
|
}
|
|
472
475
|
}, InputButtons && _react["default"].createElement(InputButtons, {
|
|
473
476
|
__self: _this,
|
|
474
477
|
__source: {
|
|
475
478
|
fileName: _jsxFileName,
|
|
476
|
-
lineNumber:
|
|
479
|
+
lineNumber: 501,
|
|
477
480
|
columnNumber: 34
|
|
478
481
|
}
|
|
479
482
|
})), _react["default"].createElement(_reactNative.View, {
|
|
@@ -484,7 +487,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
484
487
|
__self: _this,
|
|
485
488
|
__source: {
|
|
486
489
|
fileName: _jsxFileName,
|
|
487
|
-
lineNumber:
|
|
490
|
+
lineNumber: 503,
|
|
488
491
|
columnNumber: 15
|
|
489
492
|
}
|
|
490
493
|
}, (typeof editing !== 'boolean' && (editing == null ? void 0 : editing.quoted_message) || quotedMessage) && _react["default"].createElement(_reactNative.View, {
|
|
@@ -492,21 +495,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
492
495
|
__self: _this,
|
|
493
496
|
__source: {
|
|
494
497
|
fileName: _jsxFileName,
|
|
495
|
-
lineNumber:
|
|
498
|
+
lineNumber: 514,
|
|
496
499
|
columnNumber: 19
|
|
497
500
|
}
|
|
498
501
|
}, _react["default"].createElement(Reply, {
|
|
499
502
|
__self: _this,
|
|
500
503
|
__source: {
|
|
501
504
|
fileName: _jsxFileName,
|
|
502
|
-
lineNumber:
|
|
505
|
+
lineNumber: 515,
|
|
503
506
|
columnNumber: 21
|
|
504
507
|
}
|
|
505
508
|
})), imageUploads.length ? _react["default"].createElement(ImageUploadPreview, {
|
|
506
509
|
__self: _this,
|
|
507
510
|
__source: {
|
|
508
511
|
fileName: _jsxFileName,
|
|
509
|
-
lineNumber:
|
|
512
|
+
lineNumber: 518,
|
|
510
513
|
columnNumber: 40
|
|
511
514
|
}
|
|
512
515
|
}) : null, imageUploads.length && fileUploads.length ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -517,21 +520,22 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
517
520
|
__self: _this,
|
|
518
521
|
__source: {
|
|
519
522
|
fileName: _jsxFileName,
|
|
520
|
-
lineNumber:
|
|
523
|
+
lineNumber: 520,
|
|
521
524
|
columnNumber: 19
|
|
522
525
|
}
|
|
523
526
|
}) : null, fileUploads.length ? _react["default"].createElement(FileUploadPreview, {
|
|
524
527
|
__self: _this,
|
|
525
528
|
__source: {
|
|
526
529
|
fileName: _jsxFileName,
|
|
527
|
-
lineNumber:
|
|
530
|
+
lineNumber: 530,
|
|
528
531
|
columnNumber: 39
|
|
529
532
|
}
|
|
530
533
|
}) : null, giphyActive ? _react["default"].createElement(InputGiphySearch, {
|
|
534
|
+
disabled: !isOnline,
|
|
531
535
|
__self: _this,
|
|
532
536
|
__source: {
|
|
533
537
|
fileName: _jsxFileName,
|
|
534
|
-
lineNumber:
|
|
538
|
+
lineNumber: 532,
|
|
535
539
|
columnNumber: 19
|
|
536
540
|
}
|
|
537
541
|
}) : _react["default"].createElement(_reactNative.View, {
|
|
@@ -539,7 +543,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
539
543
|
__self: _this,
|
|
540
544
|
__source: {
|
|
541
545
|
fileName: _jsxFileName,
|
|
542
|
-
lineNumber:
|
|
546
|
+
lineNumber: 534,
|
|
543
547
|
columnNumber: 19
|
|
544
548
|
}
|
|
545
549
|
}, _react["default"].createElement(_AutoCompleteInput.AutoCompleteInput, {
|
|
@@ -548,7 +552,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
548
552
|
__self: _this,
|
|
549
553
|
__source: {
|
|
550
554
|
fileName: _jsxFileName,
|
|
551
|
-
lineNumber:
|
|
555
|
+
lineNumber: 535,
|
|
552
556
|
columnNumber: 21
|
|
553
557
|
}
|
|
554
558
|
}))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -556,7 +560,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
556
560
|
__self: _this,
|
|
557
561
|
__source: {
|
|
558
562
|
fileName: _jsxFileName,
|
|
559
|
-
lineNumber:
|
|
563
|
+
lineNumber: 542,
|
|
560
564
|
columnNumber: 15
|
|
561
565
|
}
|
|
562
566
|
}, cooldownRemainingSeconds ? _react["default"].createElement(CooldownTimer, {
|
|
@@ -564,15 +568,15 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
564
568
|
__self: _this,
|
|
565
569
|
__source: {
|
|
566
570
|
fileName: _jsxFileName,
|
|
567
|
-
lineNumber:
|
|
571
|
+
lineNumber: 544,
|
|
568
572
|
columnNumber: 19
|
|
569
573
|
}
|
|
570
574
|
}) : _react["default"].createElement(SendButton, {
|
|
571
|
-
disabled: disabled || sending.current || !isValidMessage(),
|
|
575
|
+
disabled: disabled || sending.current || !isValidMessage() || giphyActive && !isOnline,
|
|
572
576
|
__self: _this,
|
|
573
577
|
__source: {
|
|
574
578
|
fileName: _jsxFileName,
|
|
575
|
-
lineNumber:
|
|
579
|
+
lineNumber: 546,
|
|
576
580
|
columnNumber: 19
|
|
577
581
|
}
|
|
578
582
|
})))), _react["default"].createElement(ShowThreadMessageInChannelButton, {
|
|
@@ -580,7 +584,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
580
584
|
__self: _this,
|
|
581
585
|
__source: {
|
|
582
586
|
fileName: _jsxFileName,
|
|
583
|
-
lineNumber:
|
|
587
|
+
lineNumber: 556,
|
|
584
588
|
columnNumber: 9
|
|
585
589
|
}
|
|
586
590
|
})), triggerType && suggestions ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -591,7 +595,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
591
595
|
__self: _this,
|
|
592
596
|
__source: {
|
|
593
597
|
fileName: _jsxFileName,
|
|
594
|
-
lineNumber:
|
|
598
|
+
lineNumber: 560,
|
|
595
599
|
columnNumber: 9
|
|
596
600
|
}
|
|
597
601
|
}, _react["default"].createElement(AutoCompleteSuggestionList, {
|
|
@@ -603,7 +607,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
603
607
|
__self: _this,
|
|
604
608
|
__source: {
|
|
605
609
|
fileName: _jsxFileName,
|
|
606
|
-
lineNumber:
|
|
610
|
+
lineNumber: 567,
|
|
607
611
|
columnNumber: 11
|
|
608
612
|
}
|
|
609
613
|
})) : null, selectedPicker && _react["default"].createElement(_reactNative.View, {
|
|
@@ -614,14 +618,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
614
618
|
__self: _this,
|
|
615
619
|
__source: {
|
|
616
620
|
fileName: _jsxFileName,
|
|
617
|
-
lineNumber:
|
|
621
|
+
lineNumber: 577,
|
|
618
622
|
columnNumber: 9
|
|
619
623
|
}
|
|
620
624
|
}, _react["default"].createElement(_AttachmentSelectionBar.AttachmentSelectionBar, {
|
|
621
625
|
__self: _this,
|
|
622
626
|
__source: {
|
|
623
627
|
fileName: _jsxFileName,
|
|
624
|
-
lineNumber:
|
|
628
|
+
lineNumber: 589,
|
|
625
629
|
columnNumber: 11
|
|
626
630
|
}
|
|
627
631
|
})));
|
|
@@ -635,6 +639,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
635
639
|
prevFileUploads = prevProps.fileUploads,
|
|
636
640
|
prevGiphyActive = prevProps.giphyActive,
|
|
637
641
|
prevImageUploads = prevProps.imageUploads,
|
|
642
|
+
prevIsOnline = prevProps.isOnline,
|
|
638
643
|
prevIsValidMessage = prevProps.isValidMessage,
|
|
639
644
|
prevMentionedUsers = prevProps.mentionedUsers,
|
|
640
645
|
prevQuotedMessage = prevProps.quotedMessage,
|
|
@@ -651,6 +656,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
651
656
|
nextFileUploads = nextProps.fileUploads,
|
|
652
657
|
nextGiphyActive = nextProps.giphyActive,
|
|
653
658
|
nextImageUploads = nextProps.imageUploads,
|
|
659
|
+
nextIsOnline = nextProps.isOnline,
|
|
654
660
|
nextIsValidMessage = nextProps.isValidMessage,
|
|
655
661
|
nextMentionedUsers = nextProps.mentionedUsers,
|
|
656
662
|
nextQuotedMessage = nextProps.quotedMessage,
|
|
@@ -678,6 +684,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
678
684
|
if (!sendingEqual) return false;
|
|
679
685
|
var showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;
|
|
680
686
|
if (!showMoreOptionsEqual) return false;
|
|
687
|
+
var isOnlineEqual = prevIsOnline === nextIsOnline;
|
|
688
|
+
if (!isOnlineEqual) return false;
|
|
681
689
|
var isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();
|
|
682
690
|
if (!isValidMessageEqual) return false;
|
|
683
691
|
var asyncUploadsEqual = Object.keys(prevAsyncUploads).every(function (key) {
|
|
@@ -703,6 +711,9 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
703
711
|
var MemoizedMessageInput = _react["default"].memo(MessageInputWithContext, areEqual);
|
|
704
712
|
|
|
705
713
|
var MessageInput = function MessageInput(props) {
|
|
714
|
+
var _useChatContext = (0, _contexts.useChatContext)(),
|
|
715
|
+
isOnline = _useChatContext.isOnline;
|
|
716
|
+
|
|
706
717
|
var ownCapabilities = (0, _OwnCapabilitiesContext.useOwnCapabilitiesContext)();
|
|
707
718
|
|
|
708
719
|
var _useChannelContext = (0, _ChannelContext.useChannelContext)(),
|
|
@@ -772,7 +783,7 @@ var MessageInput = function MessageInput(props) {
|
|
|
772
783
|
__self: _this,
|
|
773
784
|
__source: {
|
|
774
785
|
fileName: _jsxFileName,
|
|
775
|
-
lineNumber:
|
|
786
|
+
lineNumber: 795,
|
|
776
787
|
columnNumber: 12
|
|
777
788
|
}
|
|
778
789
|
});
|
|
@@ -803,6 +814,7 @@ var MessageInput = function MessageInput(props) {
|
|
|
803
814
|
InputEditingStateHeader: InputEditingStateHeader,
|
|
804
815
|
InputGiphySearch: InputGiphySearch,
|
|
805
816
|
InputReplyStateHeader: InputReplyStateHeader,
|
|
817
|
+
isOnline: isOnline,
|
|
806
818
|
isValidMessage: isValidMessage,
|
|
807
819
|
maxNumberOfFiles: maxNumberOfFiles,
|
|
808
820
|
members: members,
|
|
@@ -831,7 +843,7 @@ var MessageInput = function MessageInput(props) {
|
|
|
831
843
|
__self: _this,
|
|
832
844
|
__source: {
|
|
833
845
|
fileName: _jsxFileName,
|
|
834
|
-
lineNumber:
|
|
846
|
+
lineNumber: 799,
|
|
835
847
|
columnNumber: 5
|
|
836
848
|
}
|
|
837
849
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageInput.tsx"],"names":["styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","setHeight","theme","colors","border","grey_whisper","white","white_smoke","messageInput","attachmentSelectionBar","suggestionListContainer","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","cooldownRemainingSeconds","seconds","hasResetImages","setHasResetImages","hasResetFiles","setHasResetFiles","selectedImagesLength","length","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","uploadImagesHandler","imagesToUpload","filter","selectedImage","uploadedImage","find","imageUpload","uri","url","removeImagesHandler","imagesToRemove","filesToUpload","selectedFile","uploadedFile","fileUpload","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","name","size","type","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","Object","values","state","keys","getMembers","result","member","user","push","getUsers","users","getWatchers","uniqueUsers","usersArray","additionalTextInputContainerProps","editable","undefined","newHeight","nativeEvent","layout","backgroundColor","borderColor","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","bottom","data","onSelect","queryText","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","t","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isValidMessageEqual","asyncUploadsEqual","every","key","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","ownCapabilities","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","setShowMoreOptions","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","sendMessage","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const uploadImagesHandler = () => {\n const imagesToUpload = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n imagesToUpload.forEach((image) => uploadNewImage(image));\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const filesToUpload = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n filesToUpload.forEach((file) => uploadNewFile(file));\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n type: fileUpload.file.type,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={additionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton disabled={disabled || sending.current || !isValidMessage()} />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageInput.tsx"],"names":["styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isOnline","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","setHeight","theme","colors","border","grey_whisper","white","white_smoke","messageInput","attachmentSelectionBar","suggestionListContainer","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","cooldownRemainingSeconds","seconds","hasResetImages","setHasResetImages","hasResetFiles","setHasResetFiles","selectedImagesLength","length","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","uploadImagesHandler","imagesToUpload","filter","selectedImage","uploadedImage","find","imageUpload","uri","url","removeImagesHandler","imagesToRemove","filesToUpload","selectedFile","uploadedFile","fileUpload","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","name","size","type","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","Object","values","state","keys","getMembers","result","member","user","push","getUsers","users","getWatchers","uniqueUsers","usersArray","additionalTextInputContainerProps","editable","undefined","newHeight","nativeEvent","layout","backgroundColor","borderColor","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","bottom","data","onSelect","queryText","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsOnline","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","t","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsOnline","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isOnlineEqual","isValidMessageEqual","asyncUploadsEqual","every","key","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","ownCapabilities","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","setShowMoreOptions","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","sendMessage","displayName"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AAIA;;AAEA;;AACA;;AACA;;AAIA;;AAIA;;AAIA;;AACA;;AAIA;;AACA;;AACA;;AAMA;;AACA;;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,mBAAmB,EAAE;AACnBC,IAAAA,iBAAiB,EAAE,CADA;AAEnBC,IAAAA,YAAY,EAAE;AAFK,GADU;AAK/BC,EAAAA,0BAA0B,EAAE;AAC1BC,IAAAA,UAAU,EAAE,QADc;AAE1BC,IAAAA,aAAa,EAAE,KAFW;AAG1BC,IAAAA,WAAW,EAAE,EAHa;AAI1BC,IAAAA,YAAY,EAAE;AAJY,GALG;AAW/BC,EAAAA,iBAAiB,EAAE;AACjBJ,IAAAA,UAAU,EAAE,UADK;AAEjBC,IAAAA,aAAa,EAAE;AAFE,GAXY;AAe/BI,EAAAA,SAAS,EAAE;AACTC,IAAAA,cAAc,EAAE,CADP;AAETC,IAAAA,OAAO,EAAE;AAFA,GAfoB;AAmB/BC,EAAAA,iBAAiB,EAAE;AACjBC,IAAAA,YAAY,EAAE,EADG;AAEjBC,IAAAA,WAAW,EAAE,CAFI;AAGjBC,IAAAA,IAAI,EAAE;AAHW,GAnBY;AAwB/BC,EAAAA,gBAAgB,EAAE;AAChBX,IAAAA,aAAa,EAAE,KADC;AAEhBY,IAAAA,aAAa,EAAE,EAFC;AAGhBV,IAAAA,YAAY,EAAE;AAHE,GAxBa;AA6B/BW,EAAAA,cAAc,EAAE;AAAED,IAAAA,aAAa,EAAE,EAAjB;AAAqBE,IAAAA,iBAAiB,EAAE;AAAxC,GA7Be;AA8B/BC,EAAAA,mBAAmB,EAAE;AAAEH,IAAAA,aAAa,EAAE,EAAjB;AAAqBX,IAAAA,WAAW,EAAE;AAAlC,GA9BU;AA+B/Be,EAAAA,wBAAwB,EAAE;AACxBR,IAAAA,YAAY,EAAE,EADU;AAExBS,IAAAA,SAAS,EAAE,CAFa;AAGxBC,IAAAA,IAAI,EAAE,CAHkB;AAIxBC,IAAAA,QAAQ,EAAE,UAJc;AAKxBC,IAAAA,KAAK,EAAE,CALiB;AAMxBC,IAAAA,YAAY,EAAE;AAAEC,MAAAA,MAAM,EAAE,CAAV;AAAaC,MAAAA,KAAK,EAAE;AAApB,KANU;AAOxBC,IAAAA,aAAa,EAAE;AAPS;AA/BK,CAAlB,CAAf;;AAoGA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAG9BC,KAH8B,EAI3B;AACH,MACEC,wBADF,GA2CID,KA3CJ,CACEC,wBADF;AAAA,MAEEC,QAFF,GA2CIF,KA3CJ,CAEEE,QAFF;AAAA,MAGEC,YAHF,GA2CIH,KA3CJ,CAGEG,YAHF;AAAA,MAIEC,0BAJF,GA2CIJ,KA3CJ,CAIEI,0BAJF;AAAA,MAKEC,qBALF,GA2CIL,KA3CJ,CAKEK,qBALF;AAAA,MAMEC,cANF,GA2CIN,KA3CJ,CAMEM,cANF;AAAA,MAOEC,aAPF,GA2CIP,KA3CJ,CAOEO,aAPF;AAAA,MAQEC,QARF,GA2CIR,KA3CJ,CAQEQ,QARF;AAAA,MASEC,OATF,GA2CIT,KA3CJ,CASES,OATF;AAAA,MAUEC,iBAVF,GA2CIV,KA3CJ,CAUEU,iBAVF;AAAA,MAWEC,WAXF,GA2CIX,KA3CJ,CAWEW,WAXF;AAAA,MAYEC,WAZF,GA2CIZ,KA3CJ,CAYEY,WAZF;AAAA,MAaEC,kBAbF,GA2CIb,KA3CJ,CAaEa,kBAbF;AAAA,MAcEC,YAdF,GA2CId,KA3CJ,CAcEc,YAdF;AAAA,MAeEC,KAfF,GA2CIf,KA3CJ,CAeEe,KAfF;AAAA,MAgBEC,WAhBF,GA2CIhB,KA3CJ,CAgBEgB,WAhBF;AAAA,MAiBEC,YAjBF,GA2CIjB,KA3CJ,CAiBEiB,YAjBF;AAAA,MAkBEC,uBAlBF,GA2CIlB,KA3CJ,CAkBEkB,uBAlBF;AAAA,MAmBEC,gBAnBF,GA2CInB,KA3CJ,CAmBEmB,gBAnBF;AAAA,MAoBEC,qBApBF,GA2CIpB,KA3CJ,CAoBEoB,qBApBF;AAAA,MAqBEC,QArBF,GA2CIrB,KA3CJ,CAqBEqB,QArBF;AAAA,MAsBEC,cAtBF,GA2CItB,KA3CJ,CAsBEsB,cAtBF;AAAA,MAuBEC,gBAvBF,GA2CIvB,KA3CJ,CAuBEuB,gBAvBF;AAAA,MAwBEC,OAxBF,GA2CIxB,KA3CJ,CAwBEwB,OAxBF;AAAA,MAyBEC,cAzBF,GA2CIzB,KA3CJ,CAyBEyB,cAzBF;AAAA,MA0BEC,eA1BF,GA2CI1B,KA3CJ,CA0BE0B,eA1BF;AAAA,MA2BEC,aA3BF,GA2CI3B,KA3CJ,CA2BE2B,aA3BF;AAAA,MA4BEC,UA5BF,GA2CI5B,KA3CJ,CA4BE4B,UA5BF;AAAA,MA6BEC,WA7BF,GA2CI7B,KA3CJ,CA6BE6B,WA7BF;AAAA,MA8BEC,KA9BF,GA2CI9B,KA3CJ,CA8BE8B,KA9BF;AAAA,MA+BEC,UA/BF,GA2CI/B,KA3CJ,CA+BE+B,UA/BF;AAAA,MAgCEC,UAhCF,GA2CIhC,KA3CJ,CAgCEgC,UAhCF;AAAA,MAiCEC,OAjCF,GA2CIjC,KA3CJ,CAiCEiC,OAjCF;AAAA,MAkCEC,gBAlCF,GA2CIlC,KA3CJ,CAkCEkC,gBAlCF;AAAA,MAmCEC,gCAnCF,GA2CInC,KA3CJ,CAmCEmC,gCAnCF;AAAA,MAoCEC,WApCF,GA2CIpC,KA3CJ,CAoCEoC,WApCF;AAAA,MAqCEC,MArCF,GA2CIrC,KA3CJ,CAqCEqC,MArCF;AAAA,MAsCEC,UAtCF,GA2CItC,KA3CJ,CAsCEsC,UAtCF;AAAA,MAuCEC,WAvCF,GA2CIvC,KA3CJ,CAuCEuC,WAvCF;AAAA,MAwCEC,aAxCF,GA2CIxC,KA3CJ,CAwCEwC,aAxCF;AAAA,MAyCEC,cAzCF,GA2CIzC,KA3CJ,CAyCEyC,cAzCF;AAAA,MA0CEC,QA1CF,GA2CI1C,KA3CJ,CA0CE0C,QA1CF;;AA6CA,kBAA4B,qBAAS,CAAT,CAA5B;AAAA;AAAA,MAAO9C,MAAP;AAAA,MAAe+C,SAAf;;AAEA,kBAeI,6BAfJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,MAFd,yBAEcA,MAFd;AAAA,MAEsBC,YAFtB,yBAEsBA,YAFtB;AAAA,MAEoCC,KAFpC,yBAEoCA,KAFpC;AAAA,MAE2CC,WAF3C,yBAE2CA,WAF3C;AAAA,8CAGIC,YAHJ;AAAA,MAIMC,sBAJN,yBAIMA,sBAJN;AAAA,MAKM/E,0BALN,yBAKMA,0BALN;AAAA,MAMMK,iBANN,yBAMMA,iBANN;AAAA,MAOMC,SAPN,yBAOMA,SAPN;AAAA,MAQMG,iBARN,yBAQMA,iBARN;AAAA,MASMI,gBATN,yBASMA,gBATN;AAAA,MAUME,cAVN,yBAUMA,cAVN;AAAA,MAWME,mBAXN,yBAWMA,mBAXN;AAAA,MAY6C+D,uBAZ7C,yBAYM9D,wBAZN,CAYkCZ,SAZlC;;AAiBA,8BAUI,0DAVJ;AAAA,MACE2E,iCADF,yBACEA,iCADF;AAAA,MAEEC,4BAFF,yBAEEA,4BAFF;AAAA,MAGEC,WAHF,yBAGEA,WAHF;AAAA,MAIEC,aAJF,yBAIEA,aAJF;AAAA,MAKEC,cALF,yBAKEA,cALF;AAAA,MAMEC,cANF,yBAMEA,cANF;AAAA,MAOEC,mBAPF,yBAOEA,mBAPF;AAAA,MAQEC,gBARF,yBAQEA,gBARF;AAAA,MASEC,iBATF,yBASEA,iBATF;;AAYA,sBAA8C,iCAAavD,cAAb,CAA9C;AAAA,MAAiBwD,wBAAjB,iBAAQC,OAAR;;AASA,wBAAU,YAAM;AACdJ,IAAAA,mBAAmB,CAACpC,gBAAD,WAACA,gBAAD,GAAqB,EAArB,CAAnB;AAEA,WAAOlB,qBAAP;AACD,GAJD,EAIG,EAJH;;AAMA,mBAA4C,qBAAS,KAAT,CAA5C;AAAA;AAAA,MAAO2D,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,mBAA0C,qBAAS,KAAT,CAA1C;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,MAAMC,oBAAoB,GAAGJ,cAAc,GAAGP,cAAc,CAACY,MAAlB,GAA2B,CAAtE;AACA,MAAMC,kBAAkB,GAAGN,cAAc,GAAGlD,YAAY,CAACuD,MAAhB,GAAyB,CAAlE;AACA,MAAME,mBAAmB,GAAGL,aAAa,GAAGV,aAAa,CAACa,MAAjB,GAA0B,CAAnE;AACA,MAAMG,iBAAiB,GAAGN,aAAa,GAAGvD,WAAW,CAAC0D,MAAf,GAAwB,CAA/D;AACA,MAAMI,cAAc,GAAI,CAAC,CAACpC,MAAF,IAAY,CAAC,CAACC,UAAf,IAA+B,CAACD,MAAD,IAAW,CAACC,UAAlE;AAEA,wBAAU,YAAM;AACduB,IAAAA,iBAAiB,CAAC,EAAD,CAAjB;;AACA,QAAI/C,YAAY,CAACuD,MAAjB,EAAyB;AACvBvD,MAAAA,YAAY,CAAC4D,OAAb,CAAqB,UAACC,KAAD;AAAA,eAAW9C,WAAW,CAAC8C,KAAK,CAACC,EAAP,CAAtB;AAAA,OAArB;AACD;;AACD,WAAO;AAAA,aAAMf,iBAAiB,CAAC,EAAD,CAAvB;AAAA,KAAP;AACD,GAND,EAMG,EANH;AAQA,wBAAU,YAAM;AACdD,IAAAA,gBAAgB,CAAC,EAAD,CAAhB;;AACA,QAAIjD,WAAW,CAAC0D,MAAhB,EAAwB;AACtB1D,MAAAA,WAAW,CAAC+D,OAAZ,CAAoB,UAACG,IAAD;AAAA,eAAUjD,UAAU,CAACiD,IAAI,CAACD,EAAN,CAApB;AAAA,OAApB;AACD;;AACD,WAAO;AAAA,aAAMhB,gBAAgB,CAAC,EAAD,CAAtB;AAAA,KAAP;AACD,GAND,EAMG,EANH;AAQA,wBAAU,YAAM;AACd,QAAII,cAAc,KAAK,KAAnB,IAA4BM,kBAAkB,KAAK,CAAnD,IAAwDF,oBAAoB,KAAK,CAArF,EAAwF;AACtFH,MAAAA,iBAAiB,CAAC,IAAD,CAAjB;AACD;AACF,GAJD,EAIG,CAACK,kBAAD,EAAqBF,oBAArB,CAJH;AAMA,wBAAU,YAAM;AACd,QAAIF,aAAa,KAAK,KAAlB,IAA2BM,iBAAiB,KAAK,CAAjD,IAAsDD,mBAAmB,KAAK,CAAlF,EAAqF;AACnFJ,MAAAA,gBAAgB,CAAC,IAAD,CAAhB;AACD;AACF,GAJD,EAIG,CAACK,iBAAD,EAAoBD,mBAApB,CAJH;AAMA,wBAAU,YAAM;AACd,QAAIE,cAAc,KAAK,KAAnB,IAA4B3D,YAAY,CAACuD,MAA7C,EAAqD;AACnDvD,MAAAA,YAAY,CAAC4D,OAAb,CAAqB,UAACC,KAAD;AAAA,eAAW9C,WAAW,CAAC8C,KAAK,CAACC,EAAP,CAAtB;AAAA,OAArB;AACD;AACF,GAJD,EAIG,CAACH,cAAD,CAJH;;AAMA,MAAMK,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChC,QAAMC,cAAc,GAAGtB,cAAc,CAACuB,MAAf,CAAsB,UAACC,aAAD,EAAmB;AAC9D,UAAMC,aAAa,GAAGpE,YAAY,CAACqE,IAAb,CACpB,UAACC,WAAD;AAAA,eACEA,WAAW,CAACP,IAAZ,CAAiBQ,GAAjB,KAAyBJ,aAAa,CAACI,GAAvC,IAA8CD,WAAW,CAACE,GAAZ,KAAoBL,aAAa,CAACI,GADlF;AAAA,OADoB,CAAtB;AAIA,aAAO,CAACH,aAAR;AACD,KANsB,CAAvB;AAOAH,IAAAA,cAAc,CAACL,OAAf,CAAuB,UAACC,KAAD;AAAA,aAAWlC,cAAc,CAACkC,KAAD,CAAzB;AAAA,KAAvB;AACD,GATD;;AAWA,MAAMY,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChC,QAAMC,cAAc,GAAG1E,YAAY,CAACkE,MAAb,CACrB,UAACI,WAAD;AAAA,aACE,CAAC3B,cAAc,CAAC0B,IAAf,CACC,UAACF,aAAD;AAAA,eACEA,aAAa,CAACI,GAAd,KAAsBD,WAAW,CAACP,IAAZ,CAAiBQ,GAAvC,IAA8CJ,aAAa,CAACI,GAAd,KAAsBD,WAAW,CAACE,GADlF;AAAA,OADD,CADH;AAAA,KADqB,CAAvB;AAOAE,IAAAA,cAAc,CAACd,OAAf,CAAuB,UAACC,KAAD;AAAA,aAAW9C,WAAW,CAAC8C,KAAK,CAACC,EAAP,CAAtB;AAAA,KAAvB;AACD,GATD;;AAWA,wBAAU,YAAM;AACd,QAAIH,cAAJ,EAAoB;AAClB,UAAIL,oBAAoB,GAAGE,kBAA3B,EAA+C;AAE7CQ,QAAAA,mBAAmB;AACpB,OAHD,MAGO;AAELS,QAAAA,mBAAmB;AACpB;AACF;AACF,GAVD,EAUG,CAACnB,oBAAD,CAVH;AAYA,wBAAU,YAAM;AACd,QAAIG,mBAAmB,GAAGC,iBAA1B,EAA6C;AAE3C,UAAMiB,aAAa,GAAGjC,aAAa,CAACwB,MAAd,CAAqB,UAACU,YAAD,EAAkB;AAC3D,YAAMC,YAAY,GAAGhF,WAAW,CAACwE,IAAZ,CACnB,UAACS,UAAD;AAAA,iBACEA,UAAU,CAACf,IAAX,CAAgBQ,GAAhB,KAAwBK,YAAY,CAACL,GAArC,IAA4CO,UAAU,CAACN,GAAX,KAAmBI,YAAY,CAACL,GAD9E;AAAA,SADmB,CAArB;AAIA,eAAO,CAACM,YAAR;AACD,OANqB,CAAtB;AAOAF,MAAAA,aAAa,CAACf,OAAd,CAAsB,UAACG,IAAD;AAAA,eAAUrC,aAAa,CAACqC,IAAD,CAAvB;AAAA,OAAtB;AACD,KAVD,MAUO;AAEL,UAAMgB,aAAa,GAAGlF,WAAW,CAACqE,MAAZ,CACpB,UAACY,UAAD;AAAA,eACE,CAACpC,aAAa,CAAC2B,IAAd,CACC,UAACO,YAAD;AAAA,iBACEA,YAAY,CAACL,GAAb,KAAqBO,UAAU,CAACf,IAAX,CAAgBQ,GAArC,IAA4CK,YAAY,CAACL,GAAb,KAAqBO,UAAU,CAACN,GAD9E;AAAA,SADD,CADH;AAAA,OADoB,CAAtB;AAOAO,MAAAA,aAAa,CAACnB,OAAd,CAAsB,UAACG,IAAD;AAAA,eAAUjD,UAAU,CAACiD,IAAI,CAACD,EAAN,CAApB;AAAA,OAAtB;AACD;AACF,GAtBD,EAsBG,CAACL,mBAAD,CAtBH;AAwBA,wBAAU,YAAM;AACd,QAAIE,cAAJ,EAAoB;AAClB,UAAIH,kBAAkB,GAAGF,oBAAzB,EAA+C;AAE7C,YAAM0B,qBAAqB,GAAGrC,cAAc,CAACuB,MAAf,CAAsB,UAACC,aAAD,EAAmB;AACrE,cAAMC,aAAa,GAAGpE,YAAY,CAACqE,IAAb,CACpB,UAACC,WAAD;AAAA,mBACEA,WAAW,CAACP,IAAZ,CAAiBQ,GAAjB,KAAyBJ,aAAa,CAACI,GAAvC,IAA8CD,WAAW,CAACE,GAAZ,KAAoBL,aAAa,CAACI,GADlF;AAAA,WADoB,CAAtB;AAIA,iBAAOH,aAAP;AACD,SAN6B,CAA9B;AAOArB,QAAAA,iBAAiB,CAACiC,qBAAD,CAAjB;AACD,OAVD,MAUO,IAAIxB,kBAAkB,GAAGF,oBAAzB,EAA+C;AAMpDP,QAAAA,iBAAiB,CACf/C,YAAY,CACTiF,GADH,CACO,UAACX,WAAD;AAAA,iBAAkB;AACrBxF,YAAAA,MAAM,EAAEwF,WAAW,CAACP,IAAZ,CAAiBjF,MADJ;AAErBoG,YAAAA,MAAM,EAAEZ,WAAW,CAACP,IAAZ,CAAiBmB,MAFJ;AAGrBX,YAAAA,GAAG,EAAED,WAAW,CAACE,GAAZ,IAAmBF,WAAW,CAACP,IAAZ,CAAiBQ,GAHpB;AAIrBxF,YAAAA,KAAK,EAAEuF,WAAW,CAACP,IAAZ,CAAiBhF;AAJH,WAAlB;AAAA,SADP,EAOGmF,MAPH,CAOUiB,OAPV,CADe,CAAjB;AAUD;AACF;AACF,GA9BD,EA8BG,CAAC3B,kBAAD,CA9BH;AAgCA,wBAAU,YAAM;AACd,QAAIE,iBAAiB,GAAGD,mBAAxB,EAA6C;AAE3C,UAAM2B,oBAAoB,GAAG1C,aAAa,CAACwB,MAAd,CAAqB,UAACU,YAAD,EAAkB;AAClE,YAAMC,YAAY,GAAGhF,WAAW,CAACwE,IAAZ,CACnB,UAACS,UAAD;AAAA,iBACEA,UAAU,CAACf,IAAX,CAAgBQ,GAAhB,KAAwBK,YAAY,CAACL,GAArC,IAA4CO,UAAU,CAACN,GAAX,KAAmBI,YAAY,CAACL,GAD9E;AAAA,SADmB,CAArB;AAIA,eAAOM,YAAP;AACD,OAN4B,CAA7B;AAOA/B,MAAAA,gBAAgB,CAACsC,oBAAD,CAAhB;AACD,KAVD,MAUO,IAAI1B,iBAAiB,GAAGD,mBAAxB,EAA6C;AAMlDX,MAAAA,gBAAgB,CACdjD,WAAW,CAACoF,GAAZ,CAAgB,UAACH,UAAD;AAAA,eAAiB;AAC/BO,UAAAA,QAAQ,EAAEP,UAAU,CAACf,IAAX,CAAgBsB,QADK;AAE/BC,UAAAA,IAAI,EAAER,UAAU,CAACf,IAAX,CAAgBuB,IAFS;AAG/BC,UAAAA,IAAI,EAAET,UAAU,CAACf,IAAX,CAAgBwB,IAHS;AAI/BC,UAAAA,IAAI,EAAEV,UAAU,CAACf,IAAX,CAAgByB,IAJS;AAK/BjB,UAAAA,GAAG,EAAEO,UAAU,CAACf,IAAX,CAAgBQ;AALU,SAAjB;AAAA,OAAhB,CADc,CAAhB;AASD;AACF,GA3BD,EA2BG,CAACb,iBAAD,CA3BH;AA6BA,MAAM+B,aAAa,GAAG,CAAC,CAAC9F,OAAxB;AACA,wBAAU,YAAM;AACd,QAAIA,OAAO,IAAIO,WAAW,CAACwF,OAA3B,EAAoC;AAClCxF,MAAAA,WAAW,CAACwF,OAAZ,CAAoBC,KAApB;AACD;;AAWD,QACE,CAAChG,OAAD,KACCG,WAAW,IACVD,WAAW,CAAC0D,MAAZ,GAAqB,CADtB,IAEC5C,cAAc,CAAC4C,MAAf,GAAwB,CAFzB,IAGCvD,YAAY,CAACuD,MAAb,GAAsB,CAHvB,IAIC3C,eAAe,GAAG,CALpB,CADF,EAOE;AACAK,MAAAA,UAAU;AACX;AACF,GAxBD,EAwBG,CAACwE,aAAD,CAxBH;AA0BA,MAAMG,cAAc,GAAGxG,QAAQ,CAACyG,IAAT,EAAvB;AACA,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,MAAP,CAAc3G,YAAd,EACxB4F,GADwB,CACpB;AAAA,QAAGgB,KAAH,QAAGA,KAAH;AAAA,QAAUzB,GAAV,QAAUA,GAAV;AAAA,gBAAuByB,KAAvB,GAA+BzB,GAA/B;AAAA,GADoB,EAExBqB,IAFwB,EAA3B;AAGA,wBAAU,YAAM;AACd,QAAIE,MAAM,CAACG,IAAP,CAAY7G,YAAZ,EAA0BkE,MAA9B,EAAsC;AAKpCpC,MAAAA,OAAO,CAACuE,OAAR,GAAkB,IAAlB;AACAtG,MAAAA,QAAQ,CAACwE,OAAT,CAAiB,UAACE,EAAD;AAAA,eAAQ1C,gBAAgB,CAAC0C,EAAD,CAAxB;AAAA,OAAjB;AACA3C,MAAAA,OAAO,CAACuE,OAAR,GAAkB,KAAlB;AACD;AACF,GAVD,EAUG,CAACE,cAAD,EAAiBE,kBAAjB,EAAqC1E,gBAArC,CAVH;;AAYA,MAAM+E,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvB,QAAMC,MAA0C,GAAG,EAAnD;;AACA,QAAI1F,OAAO,IAAIqF,MAAM,CAACC,MAAP,CAActF,OAAd,EAAuB6C,MAAtC,EAA8C;AAC5CwC,MAAAA,MAAM,CAACC,MAAP,CAActF,OAAd,EAAuBkD,OAAvB,CAA+B,UAACyC,MAAD,EAAY;AACzC,YAAIA,MAAM,CAACC,IAAX,EAAiB;AACfF,UAAAA,MAAM,CAACG,IAAP,CAAYF,MAAM,CAACC,IAAnB;AACD;AACF,OAJD;AAKD;;AAED,WAAOF,MAAP;AACD,GAXD;;AAaA,MAAMI,QAAQ,GAAG,SAAXA,QAAW,GAAM;AACrB,QAAMC,KAAK,iDAAON,UAAU,EAAjB,uCAAwBO,WAAW,EAAnC,EAAX;AAGA,QAAMC,WAAgE,GAAG,EAAzE;;AACA,yDAAmBF,KAAnB,wCAA0B;AAAA,UAAfH,IAAe;;AACxB,UAAIA,IAAI,IAAI,CAACK,WAAW,CAACL,IAAI,CAACxC,EAAN,CAAxB,EAAmC;AACjC6C,QAAAA,WAAW,CAACL,IAAI,CAACxC,EAAN,CAAX,GAAuBwC,IAAvB;AACD;AACF;;AACD,QAAMM,UAAU,GAAGb,MAAM,CAACC,MAAP,CAAcW,WAAd,CAAnB;AAEA,WAAOC,UAAP;AACD,GAbD;;AAeA,MAAMF,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,QAAMN,MAA0C,GAAG,EAAnD;;AACA,QAAIxE,QAAQ,IAAImE,MAAM,CAACC,MAAP,CAAcpE,QAAd,EAAwB2B,MAAxC,EAAgD;AAC9C6C,MAAAA,MAAM,CAACG,IAAP,OAAAH,MAAM,sCAASL,MAAM,CAACC,MAAP,CAAcpE,QAAd,CAAT,EAAN;AACD;;AAED,WAAOwE,MAAP;AACD,GAPD;;AASA,MAAMS,iCAAiC;AACrCC,IAAAA,QAAQ,EAAEpH,QAAQ,GAAG,KAAH,GAAWqH;AADQ,KAElC5H,wBAFkC,CAAvC;AAKA,SACE,kEACE,gCAAC,iBAAD;AACE,IAAA,QAAQ,EAAE;AAAA,UAEY6H,SAFZ,SACRC,WADQ,CAENC,MAFM,CAEIpI,MAFJ;AAAA,aAIJ+C,SAAS,CAACmF,SAAD,CAJL;AAAA,KADZ;AAME,IAAA,KAAK,EAAE,CAAChK,MAAM,CAACY,SAAR,EAAmB;AAAEuJ,MAAAA,eAAe,EAAEjF,KAAnB;AAA0BkF,MAAAA,WAAW,EAAEpF;AAAvC,KAAnB,EAAoEpE,SAApE,CANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQG+B,OAAO,IAAI,gCAAC,uBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IARd,EASGkB,aAAa,IAAI,gCAAC,qBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IATpB,EAUE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC7D,MAAM,CAACW,iBAAR,EAA2BA,iBAA3B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGsC,KAAK,GACJ,gCAAC,KAAD;AACE,IAAA,wBAAwB,EAAE4G,iCAD5B;AAEE,IAAA,QAAQ,EAAEL,QAFZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADI,GAMJ,kEACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACxJ,MAAM,CAACmB,gBAAR,EAA0BA,gBAA1B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGgC,YAAY,IAAI,gCAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADnB,CADF,EAIE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLnD,MAAM,CAACe,iBADF,EAEL;AACEqJ,MAAAA,WAAW,EAAEnF,YADf;AAEEoF,MAAAA,eAAe,EAAEvH,WAAW,GAAG,CAAH,GAAO;AAFrC,KAFK,EAML/B,iBANK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAUG,CAAE,OAAO4B,OAAP,KAAmB,SAAnB,KAAgCA,OAAhC,oBAAgCA,OAAO,CAAE2H,cAAzC,CAAD,IAA6DzG,aAA9D,KACC,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC7D,MAAM,CAACqB,cAAR,EAAwBA,cAAxB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,KAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CAXJ,EAeG2B,YAAY,CAACuD,MAAb,GAAsB,gCAAC,kBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAtB,GAA+C,IAflD,EAgBGvD,YAAY,CAACuD,MAAb,IAAuB1D,WAAW,CAAC0D,MAAnC,GACC,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLvG,MAAM,CAACG,mBADF,EAEL;AACEoK,MAAAA,iBAAiB,EAAEtF,YADrB;AAEEuF,MAAAA,gBAAgB,EAAE1H,WAAW,GAAG,CAAH,GAAO;AAFtC,KAFK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADD,GAUG,IA1BN,EA2BGD,WAAW,CAAC0D,MAAZ,GAAqB,gCAAC,iBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAArB,GAA6C,IA3BhD,EA4BGzD,WAAW,GACV,gCAAC,gBAAD;AAAkB,IAAA,QAAQ,EAAE,CAACS,QAA7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADU,GAGV,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACvD,MAAM,CAACM,0BAAR,EAAoCA,0BAApC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,oCAAD;AACE,IAAA,wBAAwB,EAAE6B,wBAD5B;AAEE,IAAA,cAAc,EAAE,CAAC,CAAC6D,wBAFpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CA/BJ,CAJF,EA2CE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAChG,MAAM,CAACuB,mBAAR,EAA6BA,mBAA7B,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGyE,wBAAwB,GACvB,gCAAC,aAAD;AAAe,IAAA,OAAO,EAAEA,wBAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADuB,GAGvB,gCAAC,UAAD;AACE,IAAA,QAAQ,EACNtD,QAAQ,IAAIyB,OAAO,CAACuE,OAApB,IAA+B,CAAClF,cAAc,EAA9C,IAAqDV,WAAW,IAAI,CAACS,QAFzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAJJ,CA3CF,CAPJ,CAVF,EA0EE,gCAAC,gCAAD;AAAkC,IAAA,UAAU,EAAEiB,UAA9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA1EF,CADF,EA8EGC,WAAW,IAAIH,WAAf,GACC,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLgB,uBADK,EAELtF,MAAM,CAACwB,wBAFF,EAGL;AAAE2I,MAAAA,eAAe,EAAEjF,KAAnB;AAA0BuF,MAAAA,MAAM,EAAE3I;AAAlC,KAHK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOE,gCAAC,0BAAD;AACE,IAAA,MAAM,EAAE,CAAC,CAACwC,WADZ;AAEE,IAAA,IAAI,EAAEA,WAAW,CAACoG,IAFpB;AAGE,IAAA,QAAQ,EAAEpG,WAAW,CAACqG,QAHxB;AAIE,IAAA,SAAS,EAAErG,WAAW,CAACsG,SAJzB;AAKE,IAAA,WAAW,EAAEnG,WALf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAPF,CADD,GAgBG,IA9FN,EA+FGmB,cAAc,IACb,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL;AACEuE,MAAAA,eAAe,EAAEhF,WADnB;AAEErD,MAAAA,MAAM,EACJ,CAACyD,iCAAiC,GAC9BA,iCAAiC,IAAIC,4BAAJ,WAAIA,4BAAJ,GAAoC,EAApC,CADH,GAE9B,GAFJ,IAEWC;AALf,KADK,EAQLJ,sBARK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAYE,gCAAC,8CAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAZF,CAhGJ,CADF;AAkHD,CAxcD;;AA0cA,IAAMwF,QAAQ,GAAG,SAAXA,QAAW,CACfC,SADe,EAEfC,SAFe,EAGZ;AACH,MAC4BC,4BAD5B,GAkBIF,SAlBJ,CACE3I,wBADF;AAAA,MAEgB8I,gBAFhB,GAkBIH,SAlBJ,CAEEzI,YAFF;AAAA,MAGY6I,YAHZ,GAkBIJ,SAlBJ,CAGEpI,QAHF;AAAA,MAIWyI,WAJX,GAkBIL,SAlBJ,CAIEnI,OAJF;AAAA,MAKeyI,eALf,GAkBIN,SAlBJ,CAKEjI,WALF;AAAA,MAMewI,eANf,GAkBIP,SAlBJ,CAMEhI,WANF;AAAA,MAOgBwI,gBAPhB,GAkBIR,SAlBJ,CAOE9H,YAPF;AAAA,MAQYuI,YARZ,GAkBIT,SAlBJ,CAQEvH,QARF;AAAA,MASkBiI,kBATlB,GAkBIV,SAlBJ,CASEtH,cATF;AAAA,MAUkBiI,kBAVlB,GAkBIX,SAlBJ,CAUEnH,cAVF;AAAA,MAWiB+H,iBAXjB,GAkBIZ,SAlBJ,CAWEjH,aAXF;AAAA,MAYW8H,WAZX,GAkBIb,SAlBJ,CAYE3G,OAZF;AAAA,MAamByH,mBAbnB,GAkBId,SAlBJ,CAaEe,eAbF;AAAA,MAceC,eAdf,GAkBIhB,SAlBJ,CAcExG,WAdF;AAAA,MAeKyH,KAfL,GAkBIjB,SAlBJ,CAeEkB,CAfF;AAAA,MAgBUC,UAhBV,GAkBInB,SAlBJ,CAgBEvG,MAhBF;AAAA,MAiBc2H,cAjBd,GAkBIpB,SAlBJ,CAiBEtG,UAjBF;AAmBA,MAC4B2H,4BAD5B,GAkBIpB,SAlBJ,CACE5I,wBADF;AAAA,MAEgBiK,gBAFhB,GAkBIrB,SAlBJ,CAEE1I,YAFF;AAAA,MAGYgK,YAHZ,GAkBItB,SAlBJ,CAGErI,QAHF;AAAA,MAIW4J,WAJX,GAkBIvB,SAlBJ,CAIEpI,OAJF;AAAA,MAKe4J,eALf,GAkBIxB,SAlBJ,CAKElI,WALF;AAAA,MAMe2J,eANf,GAkBIzB,SAlBJ,CAMEjI,WANF;AAAA,MAOgB2J,gBAPhB,GAkBI1B,SAlBJ,CAOE/H,YAPF;AAAA,MAQY0J,YARZ,GAkBI3B,SAlBJ,CAQExH,QARF;AAAA,MASkBoJ,kBATlB,GAkBI5B,SAlBJ,CASEvH,cATF;AAAA,MAUkBoJ,kBAVlB,GAkBI7B,SAlBJ,CAUEpH,cAVF;AAAA,MAWiBkJ,iBAXjB,GAkBI9B,SAlBJ,CAWElH,aAXF;AAAA,MAYWiJ,WAZX,GAkBI/B,SAlBJ,CAYE5G,OAZF;AAAA,MAamB4I,mBAbnB,GAkBIhC,SAlBJ,CAaEc,eAbF;AAAA,MAcemB,eAdf,GAkBIjC,SAlBJ,CAcEzG,WAdF;AAAA,MAeK2I,KAfL,GAkBIlC,SAlBJ,CAeEiB,CAfF;AAAA,MAgBUkB,UAhBV,GAkBInC,SAlBJ,CAgBExG,MAhBF;AAAA,MAiBc4I,cAjBd,GAkBIpC,SAlBJ,CAiBEvG,UAjBF;AAoBA,MAAM4I,MAAM,GAAGrB,KAAK,KAAKkB,KAAzB;AACA,MAAI,CAACG,MAAL,EAAa,OAAO,KAAP;AAEb,MAAMC,4BAA4B,GAChCrC,4BAA4B,KAAKmB,4BADnC;AAEA,MAAI,CAACkB,4BAAL,EAAmC,OAAO,KAAP;AAEnC,MAAMC,aAAa,GAAGpC,YAAY,KAAKmB,YAAvC;AACA,MAAI,CAACiB,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,YAAY,GAAG,CAAC,CAACpC,WAAF,KAAkB,CAAC,CAACmB,WAAzC;AACA,MAAI,CAACiB,YAAL,EAAmB,OAAO,KAAP;AAEnB,MAAMC,iBAAiB,GAAGlC,gBAAgB,CAAC/E,MAAjB,KAA4BkG,gBAAgB,CAAClG,MAAvE;AACA,MAAI,CAACiH,iBAAL,EAAwB,OAAO,KAAP;AAExB,MAAMC,gBAAgB,GAAGpC,eAAe,KAAKmB,eAA7C;AACA,MAAI,CAACiB,gBAAL,EAAuB,OAAO,KAAP;AAEvB,MAAMC,kBAAkB,GACtB,CAAC,CAAChC,iBAAF,IACA,CAAC,CAACmB,iBADF,IAEA,OAAOnB,iBAAP,KAA6B,SAF7B,IAGA,OAAOmB,iBAAP,KAA6B,SAH7B,GAIInB,iBAAiB,CAAC5E,EAAlB,KAAyB+F,iBAAiB,CAAC/F,EAJ/C,GAKI,CAAC,CAAC4E,iBAAF,KAAwB,CAAC,CAACmB,iBANhC;AAOA,MAAI,CAACa,kBAAL,EAAyB,OAAO,KAAP;AAEzB,MAAMC,YAAY,GAAGhC,WAAW,CAACjD,OAAZ,KAAwBoE,WAAW,CAACpE,OAAzD;AACA,MAAI,CAACiF,YAAL,EAAmB,OAAO,KAAP;AAEnB,MAAMC,oBAAoB,GAAGhC,mBAAmB,KAAKmB,mBAArD;AACA,MAAI,CAACa,oBAAL,EAA2B,OAAO,KAAP;AAE3B,MAAMC,aAAa,GAAGtC,YAAY,KAAKmB,YAAvC;AACA,MAAI,CAACmB,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,mBAAmB,GAAGtC,kBAAkB,OAAOmB,kBAAkB,EAAvE;AACA,MAAI,CAACmB,mBAAL,EAA0B,OAAO,KAAP;AAE1B,MAAMC,iBAAiB,GAAGhF,MAAM,CAACG,IAAP,CAAY+B,gBAAZ,EAA8B+C,KAA9B,CACxB,UAACC,GAAD;AAAA,WACEhD,gBAAgB,CAACgD,GAAD,CAAhB,CAAsBhF,KAAtB,KAAgCmD,gBAAgB,CAAC6B,GAAD,CAAhB,CAAsBhF,KAAtD,IACAgC,gBAAgB,CAACgD,GAAD,CAAhB,CAAsBzG,GAAtB,KAA8B4E,gBAAgB,CAAC6B,GAAD,CAAhB,CAAsBzG,GAFtD;AAAA,GADwB,CAA1B;AAKA,MAAI,CAACuG,iBAAL,EAAwB,OAAO,KAAP;AAExB,MAAMG,gBAAgB,GAAG9C,eAAe,CAAC7E,MAAhB,KAA2BgG,eAAe,CAAChG,MAApE;AACA,MAAI,CAAC2H,gBAAL,EAAuB,OAAO,KAAP;AAEvB,MAAMC,mBAAmB,GAAG1C,kBAAkB,CAAClF,MAAnB,KAA8BqG,kBAAkB,CAACrG,MAA7E;AACA,MAAI,CAAC4H,mBAAL,EAA0B,OAAO,KAAP;AAE1B,MAAMC,gBAAgB,GACpB,CAAC,EAACtC,eAAD,YAACA,eAAe,CAAEpB,IAAlB,CAAD,IAA2B,CAAC,EAACsC,eAAD,YAACA,eAAe,CAAEtC,IAAlB,CAA5B,GACIoB,eAAe,CAACpB,IAAhB,CAAqBnE,MAArB,KAAgCyG,eAAe,CAACtC,IAAhB,CAAqBnE,MAArD,IACAuF,eAAe,CAACpB,IAAhB,CAAqBsD,KAArB,CAA2B,iBAAWK,KAAX;AAAA,QAAG/F,IAAH,SAAGA,IAAH;AAAA,WAAqBA,IAAI,KAAK0E,eAAe,CAACtC,IAAhB,CAAqB2D,KAArB,EAA4B/F,IAA1D;AAAA,GAA3B,CAFJ,GAGI,CAAC,CAACwD,eAAF,KAAsB,CAAC,CAACkB,eAJ9B;AAKA,MAAI,CAACoB,gBAAL,EAAuB,OAAO,KAAP;AAEvB,MAAME,WAAW,GACf,CAAArC,UAAU,QAAV,YAAAA,UAAU,CAAEnF,EAAZ,OAAmBoG,UAAnB,oBAAmBA,UAAU,CAAEpG,EAA/B,KACA,CAAAmF,UAAU,QAAV,YAAAA,UAAU,CAAEsC,IAAZ,OAAqBrB,UAArB,oBAAqBA,UAAU,CAAEqB,IAAjC,CADA,IAEA,CAAAtC,UAAU,QAAV,YAAAA,UAAU,CAAEuC,WAAZ,OAA4BtB,UAA5B,oBAA4BA,UAAU,CAAEsB,WAAxC,CAHF;AAIA,MAAI,CAACF,WAAL,EAAkB,OAAO,KAAP;AAElB,MAAMG,eAAe,GAAGvC,cAAc,KAAKiB,cAA3C;AACA,MAAI,CAACsB,eAAL,EAAsB,OAAO,KAAP;AAEtB,SAAO,IAAP;AACD,CAjHD;;AAmHA,IAAMC,oBAAoB,GAAGC,kBAAMC,IAAN,CAC3B3M,uBAD2B,EAE3B4I,QAF2B,CAA7B;;AAkBO,IAAMgE,YAAY,GAAG,SAAfA,YAAe,CAG1B3M,KAH0B,EAIvB;AACH,wBAAqB,+BAArB;AAAA,MAAQqB,QAAR,mBAAQA,QAAR;;AACA,MAAMuL,eAAe,GAAG,wDAAxB;;AAEA,2BAAgD,wCAAhD;AAAA,iDAAQpM,QAAR;AAAA,MAAQA,QAAR,sCAAmB,KAAnB;AAAA,MAA0BgB,OAA1B,sBAA0BA,OAA1B;AAAA,MAAmCkB,QAAnC,sBAAmCA,QAAnC;;AAEA,8BAuCI,kDAvCJ;AAAA,MACEzC,wBADF,yBACEA,wBADF;AAAA,MAEEC,QAFF,yBAEEA,QAFF;AAAA,MAGEC,YAHF,yBAGEA,YAHF;AAAA,MAIE0M,iBAJF,yBAIEA,iBAJF;AAAA,MAKEC,uBALF,yBAKEA,uBALF;AAAA,MAMEzM,qBANF,yBAMEA,qBANF;AAAA,MAOEC,cAPF,yBAOEA,cAPF;AAAA,MAQEC,aARF,yBAQEA,aARF;AAAA,MASEE,OATF,yBASEA,OATF;AAAA,MAUEC,iBAVF,yBAUEA,iBAVF;AAAA,MAWEC,WAXF,yBAWEA,WAXF;AAAA,MAYEC,WAZF,yBAYEA,WAZF;AAAA,MAaEC,kBAbF,yBAaEA,kBAbF;AAAA,MAcEC,YAdF,yBAcEA,YAdF;AAAA,MAeEC,KAfF,yBAeEA,KAfF;AAAA,MAgBEC,WAhBF,yBAgBEA,WAhBF;AAAA,MAiBEC,YAjBF,yBAiBEA,YAjBF;AAAA,MAkBEC,uBAlBF,yBAkBEA,uBAlBF;AAAA,MAmBEC,gBAnBF,yBAmBEA,gBAnBF;AAAA,MAoBEC,qBApBF,yBAoBEA,qBApBF;AAAA,MAqBEE,cArBF,yBAqBEA,cArBF;AAAA,MAsBEC,gBAtBF,yBAsBEA,gBAtBF;AAAA,MAuBEE,cAvBF,yBAuBEA,cAvBF;AAAA,MAwBEC,eAxBF,yBAwBEA,eAxBF;AAAA,MAyBEC,aAzBF,yBAyBEA,aAzBF;AAAA,MA0BEC,UA1BF,yBA0BEA,UA1BF;AAAA,MA2BEC,WA3BF,yBA2BEA,WA3BF;AAAA,MA4BEE,UA5BF,yBA4BEA,UA5BF;AAAA,MA6BEC,UA7BF,yBA6BEA,UA7BF;AAAA,MA8BEC,OA9BF,yBA8BEA,OA9BF;AAAA,MA+BEC,gBA/BF,yBA+BEA,gBA/BF;AAAA,MAgCE6K,8BAhCF,yBAgCEA,8BAhCF;AAAA,MAiCEC,cAjCF,yBAiCEA,cAjCF;AAAA,MAkCEC,kBAlCF,yBAkCEA,kBAlCF;AAAA,MAmCEtD,eAnCF,yBAmCEA,eAnCF;AAAA,MAoCExH,gCApCF,yBAoCEA,gCApCF;AAAA,MAqCEK,aArCF,yBAqCEA,aArCF;AAAA,MAsCEC,cAtCF,yBAsCEA,cAtCF;;AAyCA,4BAAkB,0CAAlB;AAAA,MAAQX,KAAR,uBAAQA,KAAR;;AAEA,8BAMI,gDANJ;AAAA,MACEoL,4BADF,yBACEA,4BADF;AAAA,MAEEC,0BAFF,yBAEEA,0BAFF;AAAA,MAGE/M,0BAHF,yBAGEA,0BAHF;AAAA,MAIEgC,WAJF,yBAIEA,WAJF;AAAA,MAKEG,WALF,yBAKEA,WALF;;AAQA,0BAAmB,sCAAnB;AAAA,MAAQF,MAAR,qBAAQA,MAAR;;AAEA,8BAAc,gDAAd;AAAA,MAAQyH,CAAR,yBAAQA,CAAR;;AAEA,MAAI,CAAC8C,eAAe,CAACQ,WAAjB,IAAgCL,8BAApC,EAAoE;AAClE,WAAO,gCAAC,8BAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAP;AACD;;AAED,SACE,gCAAC,oBAAD;AAEI9M,IAAAA,wBAAwB,EAAxBA,wBAFJ;AAGIC,IAAAA,QAAQ,EAARA,QAHJ;AAIIC,IAAAA,YAAY,EAAZA,YAJJ;AAKI+M,IAAAA,4BAA4B,EAA5BA,4BALJ;AAMIC,IAAAA,0BAA0B,EAA1BA,0BANJ;AAOI/M,IAAAA,0BAA0B,EAA1BA,0BAPJ;AAQIyM,IAAAA,iBAAiB,EAAjBA,iBARJ;AASIC,IAAAA,uBAAuB,EAAvBA,uBATJ;AAUIzM,IAAAA,qBAAqB,EAArBA,qBAVJ;AAWIC,IAAAA,cAAc,EAAdA,cAXJ;AAYIC,IAAAA,aAAa,EAAbA,aAZJ;AAaIC,IAAAA,QAAQ,EAARA,QAbJ;AAcIC,IAAAA,OAAO,EAAPA,OAdJ;AAeIC,IAAAA,iBAAiB,EAAjBA,iBAfJ;AAgBIC,IAAAA,WAAW,EAAXA,WAhBJ;AAiBIC,IAAAA,WAAW,EAAXA,WAjBJ;AAkBIC,IAAAA,kBAAkB,EAAlBA,kBAlBJ;AAmBIC,IAAAA,YAAY,EAAZA,YAnBJ;AAoBIC,IAAAA,KAAK,EAALA,KApBJ;AAqBIC,IAAAA,WAAW,EAAXA,WArBJ;AAsBIC,IAAAA,YAAY,EAAZA,YAtBJ;AAuBIC,IAAAA,uBAAuB,EAAvBA,uBAvBJ;AAwBIC,IAAAA,gBAAgB,EAAhBA,gBAxBJ;AAyBIC,IAAAA,qBAAqB,EAArBA,qBAzBJ;AA0BIC,IAAAA,QAAQ,EAARA,QA1BJ;AA2BIC,IAAAA,cAAc,EAAdA,cA3BJ;AA4BIC,IAAAA,gBAAgB,EAAhBA,gBA5BJ;AA6BIC,IAAAA,OAAO,EAAPA,OA7BJ;AA8BIC,IAAAA,cAAc,EAAdA,cA9BJ;AA+BIC,IAAAA,eAAe,EAAfA,eA/BJ;AAgCIC,IAAAA,aAAa,EAAbA,aAhCJ;AAiCIC,IAAAA,UAAU,EAAVA,UAjCJ;AAkCIC,IAAAA,WAAW,EAAXA,WAlCJ;AAmCIC,IAAAA,KAAK,EAALA,KAnCJ;AAoCIC,IAAAA,UAAU,EAAVA,UApCJ;AAqCIC,IAAAA,UAAU,EAAVA,UArCJ;AAsCIC,IAAAA,OAAO,EAAPA,OAtCJ;AAuCIC,IAAAA,gBAAgB,EAAhBA,gBAvCJ;AAwCI8K,IAAAA,cAAc,EAAdA,cAxCJ;AAyCIC,IAAAA,kBAAkB,EAAlBA,kBAzCJ;AA0CItD,IAAAA,eAAe,EAAfA,eA1CJ;AA2CIxH,IAAAA,gCAAgC,EAAhCA,gCA3CJ;AA4CIC,IAAAA,WAAW,EAAXA,WA5CJ;AA6CI0H,IAAAA,CAAC,EAADA,CA7CJ;AA8CIzH,IAAAA,MAAM,EAANA,MA9CJ;AA+CIE,IAAAA,WAAW,EAAXA,WA/CJ;AAgDIC,IAAAA,aAAa,EAAbA,aAhDJ;AAiDIC,IAAAA,cAAc,EAAdA,cAjDJ;AAkDIC,IAAAA,QAAQ,EAARA;AAlDJ,KAoDM1C,KApDN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAwDD,CA7HM;;;AA+HP2M,YAAY,CAACU,WAAb,GAA2B,4BAA3B","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const uploadImagesHandler = () => {\n const imagesToUpload = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n imagesToUpload.forEach((image) => uploadNewImage(image));\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const filesToUpload = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n filesToUpload.forEach((file) => uploadNewFile(file));\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n type: fileUpload.file.type,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch disabled={!isOnline} />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={additionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton\n disabled={\n disabled || sending.current || !isValidMessage() || (giphyActive && !isOnline)\n }\n />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isOnline: prevIsOnline,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isOnline: nextIsOnline,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isOnlineEqual = prevIsOnline === nextIsOnline;\n if (!isOnlineEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const { isOnline } = useChatContext();\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"]}
|
|
@@ -18,7 +18,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
|
18
18
|
var _CircleRight = require("../../icons/CircleRight");
|
|
19
19
|
|
|
20
20
|
var _this = this,
|
|
21
|
-
_jsxFileName = "/
|
|
21
|
+
_jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/MessageInput/MoreOptionsButton.tsx";
|
|
22
22
|
|
|
23
23
|
var MoreOptionsButtonWithContext = function MoreOptionsButtonWithContext(props) {
|
|
24
24
|
var disabled = props.disabled,
|
|
@@ -22,7 +22,7 @@ var _SendRight = require("../../icons/SendRight");
|
|
|
22
22
|
var _SendUp = require("../../icons/SendUp");
|
|
23
23
|
|
|
24
24
|
var _this = this,
|
|
25
|
-
_jsxFileName = "/
|
|
25
|
+
_jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/MessageInput/SendButton.tsx";
|
|
26
26
|
|
|
27
27
|
var SendButtonWithContext = function SendButtonWithContext(props) {
|
|
28
28
|
var _props$disabled = props.disabled,
|
|
@@ -51,7 +51,7 @@ var SendButtonWithContext = function SendButtonWithContext(props) {
|
|
|
51
51
|
columnNumber: 5
|
|
52
52
|
}
|
|
53
53
|
}, giphyActive && _react["default"].createElement(_Search.Search, {
|
|
54
|
-
pathFill: accent_blue,
|
|
54
|
+
pathFill: disabled ? grey_gainsboro : accent_blue,
|
|
55
55
|
__self: _this,
|
|
56
56
|
__source: {
|
|
57
57
|
fileName: _jsxFileName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SendButton.tsx"],"names":["SendButtonWithContext","props","disabled","giphyActive","sendMessage","theme","colors","accent_blue","grey_gainsboro","sendButton","messageInput","areEqual","prevProps","nextProps","prevDisabled","prevGiphyActive","prevSendMessage","nextDisabled","nextGiphyActive","nextSendMessage","disabledEqual","giphyActiveEqual","sendMessageEqual","MemoizedSendButton","React","memo","SendButton","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAIA;;AACA;;AACA;;AACA;;;;;AAUA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAG5BC,KAH4B,EAIzB;AACH,wBAAuDA,KAAvD,CAAQC,QAAR;AAAA,MAAQA,QAAR,gCAAmB,KAAnB;AAAA,MAA0BC,WAA1B,GAAuDF,KAAvD,CAA0BE,WAA1B;AAAA,MAAuCC,WAAvC,GAAuDH,KAAvD,CAAuCG,WAAvC;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,WAFd,yBAEcA,WAFd;AAAA,MAE2BC,cAF3B,yBAE2BA,cAF3B;AAAA,MAGoBC,UAHpB,mBAGIC,YAHJ,CAGoBD,UAHpB;;AAOA,SACE,gCAAC,2CAAD;AACE,IAAA,QAAQ,EAAEP,QADZ;AAEE,IAAA,OAAO,EAAEA,QAAQ,GAAG;AAAA,aAAM,IAAN;AAAA,KAAH,GAAgBE,WAFnC;AAGE,IAAA,KAAK,EAAE,CAACK,UAAD,CAHT;AAIE,IAAA,MAAM,EAAC,aAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMGN,WAAW,IAAI,gCAAC,cAAD;AAAQ,IAAA,QAAQ,
|
|
1
|
+
{"version":3,"sources":["SendButton.tsx"],"names":["SendButtonWithContext","props","disabled","giphyActive","sendMessage","theme","colors","accent_blue","grey_gainsboro","sendButton","messageInput","areEqual","prevProps","nextProps","prevDisabled","prevGiphyActive","prevSendMessage","nextDisabled","nextGiphyActive","nextSendMessage","disabledEqual","giphyActiveEqual","sendMessageEqual","MemoizedSendButton","React","memo","SendButton","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAIA;;AACA;;AACA;;AACA;;;;;AAUA,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAG5BC,KAH4B,EAIzB;AACH,wBAAuDA,KAAvD,CAAQC,QAAR;AAAA,MAAQA,QAAR,gCAAmB,KAAnB;AAAA,MAA0BC,WAA1B,GAAuDF,KAAvD,CAA0BE,WAA1B;AAAA,MAAuCC,WAAvC,GAAuDH,KAAvD,CAAuCG,WAAvC;;AACA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,WAFd,yBAEcA,WAFd;AAAA,MAE2BC,cAF3B,yBAE2BA,cAF3B;AAAA,MAGoBC,UAHpB,mBAGIC,YAHJ,CAGoBD,UAHpB;;AAOA,SACE,gCAAC,2CAAD;AACE,IAAA,QAAQ,EAAEP,QADZ;AAEE,IAAA,OAAO,EAAEA,QAAQ,GAAG;AAAA,aAAM,IAAN;AAAA,KAAH,GAAgBE,WAFnC;AAGE,IAAA,KAAK,EAAE,CAACK,UAAD,CAHT;AAIE,IAAA,MAAM,EAAC,aAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMGN,WAAW,IAAI,gCAAC,cAAD;AAAQ,IAAA,QAAQ,EAAED,QAAQ,GAAGM,cAAH,GAAoBD,WAA9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IANlB,EAOG,CAACJ,WAAD,IAAgBD,QAAhB,IAA4B,gCAAC,oBAAD;AAAW,IAAA,QAAQ,EAAEM,cAArB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAP/B,EAQG,CAACL,WAAD,IAAgB,CAACD,QAAjB,IAA6B,gCAAC,cAAD;AAAQ,IAAA,QAAQ,EAAEK,WAAlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IARhC,CADF;AAYD,CAzBD;;AA2BA,IAAMI,QAAQ,GAAG,SAAXA,QAAW,CACfC,SADe,EAEfC,SAFe,EAGZ;AACH,MACYC,YADZ,GAIIF,SAJJ,CACEV,QADF;AAAA,MAEea,eAFf,GAIIH,SAJJ,CAEET,WAFF;AAAA,MAGea,eAHf,GAIIJ,SAJJ,CAGER,WAHF;AAKA,MACYa,YADZ,GAIIJ,SAJJ,CACEX,QADF;AAAA,MAEegB,eAFf,GAIIL,SAJJ,CAEEV,WAFF;AAAA,MAGegB,eAHf,GAIIN,SAJJ,CAGET,WAHF;AAMA,MAAMgB,aAAa,GAAGN,YAAY,KAAKG,YAAvC;AACA,MAAI,CAACG,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,gBAAgB,GAAGN,eAAe,KAAKG,eAA7C;AACA,MAAI,CAACG,gBAAL,EAAuB,OAAO,KAAP;AAEvB,MAAMC,gBAAgB,GAAGN,eAAe,KAAKG,eAA7C;AACA,MAAI,CAACG,gBAAL,EAAuB,OAAO,KAAP;AAEvB,SAAO,IAAP;AACD,CAzBD;;AA2BA,IAAMC,kBAAkB,GAAGC,kBAAMC,IAAN,CACzBzB,qBADyB,EAEzBW,QAFyB,CAA3B;;AAYO,IAAMe,UAAU,GAAG,SAAbA,UAAa,CAGxBzB,KAHwB,EAIrB;AACH,8BAAqC,kDAArC;AAAA,MAAQE,WAAR,yBAAQA,WAAR;AAAA,MAAqBC,WAArB,yBAAqBA,WAArB;;AAEA,SACE,gCAAC,kBAAD;AACQD,IAAAA,WAAW,EAAXA,WADR;AACqBC,IAAAA,WAAW,EAAXA;AADrB,KAEMH,KAFN;AAGQC,IAAAA,QAAQ,EAAED,KAAK,CAACC,QAAN,IAAkB,KAHpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAOD,CAdM;;;AAgBPwB,UAAU,CAACC,WAAX,GAAyB,0BAAzB","sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Search } from '../../icons/Search';\nimport { SendRight } from '../../icons/SendRight';\nimport { SendUp } from '../../icons/SendUp';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\ntype SendButtonPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageInputContextValue<StreamChatGenerics>, 'giphyActive' | 'sendMessage'> & {\n /** Disables the button */ disabled: boolean;\n};\n\nconst SendButtonWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: SendButtonPropsWithContext<StreamChatGenerics>,\n) => {\n const { disabled = false, giphyActive, sendMessage } = props;\n const {\n theme: {\n colors: { accent_blue, grey_gainsboro },\n messageInput: { sendButton },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity\n disabled={disabled}\n onPress={disabled ? () => null : sendMessage}\n style={[sendButton]}\n testID='send-button'\n >\n {giphyActive && <Search pathFill={disabled ? grey_gainsboro : accent_blue} />}\n {!giphyActive && disabled && <SendRight pathFill={grey_gainsboro} />}\n {!giphyActive && !disabled && <SendUp pathFill={accent_blue} />}\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: SendButtonPropsWithContext<StreamChatGenerics>,\n nextProps: SendButtonPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n disabled: prevDisabled,\n giphyActive: prevGiphyActive,\n sendMessage: prevSendMessage,\n } = prevProps;\n const {\n disabled: nextDisabled,\n giphyActive: nextGiphyActive,\n sendMessage: nextSendMessage,\n } = nextProps;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const sendMessageEqual = prevSendMessage === nextSendMessage;\n if (!sendMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedSendButton = React.memo(\n SendButtonWithContext,\n areEqual,\n) as typeof SendButtonWithContext;\n\nexport type SendButtonProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<SendButtonPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for send button in MessageInput component.\n */\nexport const SendButton = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: SendButtonProps<StreamChatGenerics>,\n) => {\n const { giphyActive, sendMessage } = useMessageInputContext<StreamChatGenerics>();\n\n return (\n <MemoizedSendButton\n {...{ giphyActive, sendMessage }}\n {...props}\n {...{ disabled: props.disabled || false }}\n />\n );\n};\n\nSendButton.displayName = 'SendButton{messageInput}';\n"]}
|
|
@@ -14,7 +14,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
|
14
14
|
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
15
15
|
|
|
16
16
|
var _this = this,
|
|
17
|
-
_jsxFileName = "/
|
|
17
|
+
_jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx";
|
|
18
18
|
|
|
19
19
|
var styles = _reactNative.StyleSheet.create({
|
|
20
20
|
container: {
|