stream-chat-react-native-core 7.0.0-rc.8 → 7.0.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/README.md +1 -1
- package/lib/commonjs/components/Attachment/AudioAttachment.js +19 -9
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +3 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +16 -3
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageReloadIndicator.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +2 -2
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +7 -24
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +2 -4
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +320 -310
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useChannelDataState.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js +133 -147
- package/lib/commonjs/components/Channel/hooks/useMessageListPagination.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +8 -13
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +14 -7
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +70 -54
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +14 -6
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +3 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +25 -39
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js +18 -15
- package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +96 -74
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +2 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/hooks/useAudioController.js +4 -4
- package/lib/commonjs/components/MessageInput/hooks/useAudioController.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +281 -223
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +65 -48
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getReadState.js +20 -0
- package/lib/commonjs/components/MessageList/utils/getReadState.js.map +1 -0
- package/lib/commonjs/components/MessageMenu/hooks/useFetchReactions.js.map +1 -1
- package/lib/commonjs/components/Poll/components/Button.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js +2 -2
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +24 -6
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/components/ThreadList/ThreadListItem.js.map +1 -1
- package/lib/commonjs/components/UIComponents/BottomSheetModal.js +10 -6
- package/lib/commonjs/components/UIComponents/BottomSheetModal.js.map +1 -1
- package/lib/commonjs/components/index.js +15 -4
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +5 -1
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +535 -523
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -6
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +37 -41
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/utils/utils.js +4 -4
- package/lib/commonjs/contexts/messageInputContext/utils/utils.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/pollContext/pollContext.js.map +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +23 -14
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +2 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/commonjs/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
- package/lib/commonjs/hooks/index.js +22 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useAudioPlayer.js +60 -69
- package/lib/commonjs/hooks/useAudioPlayer.js.map +1 -1
- package/lib/commonjs/hooks/useStableCallback.js +13 -0
- package/lib/commonjs/hooks/useStableCallback.js.map +1 -0
- package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/commonjs/i18n/en.json +3 -0
- package/lib/commonjs/i18n/es.json +3 -0
- package/lib/commonjs/i18n/fr.json +3 -0
- package/lib/commonjs/i18n/he.json +3 -0
- package/lib/commonjs/i18n/hi.json +2 -0
- package/lib/commonjs/i18n/it.json +3 -0
- package/lib/commonjs/i18n/ja.json +1 -0
- package/lib/commonjs/i18n/ko.json +1 -0
- package/lib/commonjs/i18n/nl.json +2 -0
- package/lib/commonjs/i18n/pt-br.json +3 -0
- package/lib/commonjs/i18n/ru.json +4 -0
- package/lib/commonjs/i18n/tr.json +2 -0
- package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/compressImage.js +1 -1
- package/lib/commonjs/utils/compressImage.js.map +1 -1
- package/lib/commonjs/utils/removeReservedFields.js.map +1 -1
- package/lib/commonjs/utils/utils.js +17 -4
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +19 -9
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +3 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +16 -3
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/ImageReloadIndicator.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +2 -2
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +7 -24
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -4
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +320 -310
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useChannelDataState.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useMessageListPagination.js +133 -147
- package/lib/module/components/Channel/hooks/useMessageListPagination.js.map +1 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +8 -13
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/module/components/Message/Message.js +14 -7
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +70 -54
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js +14 -6
- package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js +3 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +25 -39
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js +18 -15
- package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +96 -74
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +2 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/module/components/MessageInput/hooks/useAudioController.js +4 -4
- package/lib/module/components/MessageInput/hooks/useAudioController.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +281 -223
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +65 -48
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/module/components/MessageList/utils/getReadState.js +20 -0
- package/lib/module/components/MessageList/utils/getReadState.js.map +1 -0
- package/lib/module/components/MessageMenu/hooks/useFetchReactions.js.map +1 -1
- package/lib/module/components/Poll/components/Button.js.map +1 -1
- package/lib/module/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
- package/lib/module/components/Reply/Reply.js +2 -2
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +24 -6
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/components/ThreadList/ThreadListItem.js.map +1 -1
- package/lib/module/components/UIComponents/BottomSheetModal.js +10 -6
- package/lib/module/components/UIComponents/BottomSheetModal.js.map +1 -1
- package/lib/module/components/index.js +15 -4
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/useChannelState.js +5 -1
- package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -1
- package/lib/module/contexts/debugContext/DebugContext.js.map +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +535 -523
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +7 -6
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +37 -41
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messageInputContext/utils/utils.js +4 -4
- package/lib/module/contexts/messageInputContext/utils/utils.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/pollContext/pollContext.js.map +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +23 -14
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +2 -1
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/module/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
- package/lib/module/hooks/index.js +22 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useAudioPlayer.js +60 -69
- package/lib/module/hooks/useAudioPlayer.js.map +1 -1
- package/lib/module/hooks/useStableCallback.js +13 -0
- package/lib/module/hooks/useStableCallback.js.map +1 -0
- package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
- package/lib/module/i18n/en.json +3 -0
- package/lib/module/i18n/es.json +3 -0
- package/lib/module/i18n/fr.json +3 -0
- package/lib/module/i18n/he.json +3 -0
- package/lib/module/i18n/hi.json +2 -0
- package/lib/module/i18n/it.json +3 -0
- package/lib/module/i18n/ja.json +1 -0
- package/lib/module/i18n/ko.json +1 -0
- package/lib/module/i18n/nl.json +2 -0
- package/lib/module/i18n/pt-br.json +3 -0
- package/lib/module/i18n/ru.json +4 -0
- package/lib/module/i18n/tr.json +2 -0
- package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/compressImage.js +1 -1
- package/lib/module/utils/compressImage.js.map +1 -1
- package/lib/module/utils/removeReservedFields.js.map +1 -1
- package/lib/module/utils/utils.js +17 -4
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +2 -2
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts +3 -3
- package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/ImageReloadIndicator.d.ts +4 -3
- package/lib/typescript/components/Attachment/ImageReloadIndicator.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts +2 -2
- package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerItem.d.ts.map +1 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +2 -3
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts.map +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts +3 -4
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useChannelDataState.d.ts +2 -3
- package/lib/typescript/components/Channel/hooks/useChannelDataState.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts +6 -6
- package/lib/typescript/components/Channel/hooks/useCreateThreadContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts +3 -3
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useLatestMessagePreview.d.ts +1 -1
- package/lib/typescript/components/Chat/Chat.d.ts +0 -9
- package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
- package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts +3 -0
- package/lib/typescript/components/KeyboardCompatibleView/KeyboardCompatibleView.d.ts.map +1 -1
- package/lib/typescript/components/Message/Message.d.ts +4 -5
- package/lib/typescript/components/Message/Message.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -3
- package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +2 -2
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts.map +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +2 -2
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -4
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
- package/lib/typescript/components/MessageInput/InputButtons.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/hooks/useAudioController.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts +4 -4
- package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageSystem.d.ts +2 -2
- package/lib/typescript/components/MessageList/MessageSystem.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +14 -9
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts +2 -2
- package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts +2 -2
- package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getReadState.d.ts +9 -0
- package/lib/typescript/components/MessageList/utils/getReadState.d.ts.map +1 -0
- package/lib/typescript/components/MessageMenu/hooks/useFetchReactions.d.ts +2 -3
- package/lib/typescript/components/MessageMenu/hooks/useFetchReactions.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/Button.d.ts +2 -3
- package/lib/typescript/components/Poll/components/Button.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollResults/PollResultItem.d.ts +2 -3
- package/lib/typescript/components/Poll/components/PollResults/PollResultItem.d.ts.map +1 -1
- package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
- package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts.map +1 -1
- package/lib/typescript/components/ThreadList/ThreadListItem.d.ts.map +1 -1
- package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +2 -1
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +3 -3
- package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts.map +1 -1
- package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts.map +1 -1
- package/lib/typescript/contexts/debugContext/DebugContext.d.ts +2 -3
- package/lib/typescript/contexts/debugContext/DebugContext.d.ts.map +1 -1
- package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts +3 -3
- package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +6 -4
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +13 -15
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +3 -3
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/utils/utils.d.ts +2 -2
- package/lib/typescript/contexts/messageInputContext/utils/utils.d.ts.map +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +25 -21
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
- package/lib/typescript/contexts/pollContext/pollContext.d.ts +2 -3
- package/lib/typescript/contexts/pollContext/pollContext.d.ts.map +1 -1
- package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts.map +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
- package/lib/typescript/contexts/threadContext/ThreadContext.d.ts +4 -5
- package/lib/typescript/contexts/threadContext/ThreadContext.d.ts.map +1 -1
- package/lib/typescript/contexts/threadsContext/ThreadListItemContext.d.ts +3 -4
- package/lib/typescript/contexts/threadsContext/ThreadListItemContext.d.ts.map +1 -1
- package/lib/typescript/hooks/index.d.ts +2 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -1
- package/lib/typescript/hooks/useAudioPlayer.d.ts.map +1 -1
- package/lib/typescript/hooks/useStableCallback.d.ts +26 -0
- package/lib/typescript/hooks/useStableCallback.d.ts.map +1 -0
- package/lib/typescript/hooks/useTranslatedMessage.d.ts +59 -58
- package/lib/typescript/hooks/useTranslatedMessage.d.ts.map +1 -1
- package/lib/typescript/i18n/en.json +3 -0
- package/lib/typescript/i18n/es.json +3 -0
- package/lib/typescript/i18n/fr.json +3 -0
- package/lib/typescript/i18n/he.json +3 -0
- package/lib/typescript/i18n/hi.json +2 -0
- package/lib/typescript/i18n/it.json +3 -0
- package/lib/typescript/i18n/ja.json +1 -0
- package/lib/typescript/i18n/ko.json +1 -0
- package/lib/typescript/i18n/nl.json +2 -0
- package/lib/typescript/i18n/pt-br.json +3 -0
- package/lib/typescript/i18n/ru.json +4 -0
- package/lib/typescript/i18n/tr.json +2 -0
- package/lib/typescript/native.d.ts +8 -11
- package/lib/typescript/native.d.ts.map +1 -1
- package/lib/typescript/store/apis/insertReaction.d.ts +2 -2
- package/lib/typescript/store/apis/insertReaction.d.ts.map +1 -1
- package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
- package/lib/typescript/store/apis/updateMessage.d.ts.map +1 -1
- package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
- package/lib/typescript/store/apis/updateReaction.d.ts.map +1 -1
- package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
- package/lib/typescript/store/mappers/mapMessageToStorable.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +28 -50
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/compressImage.d.ts +2 -2
- package/lib/typescript/utils/compressImage.d.ts.map +1 -1
- package/lib/typescript/utils/i18n/Streami18n.d.ts +3 -0
- package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
- package/lib/typescript/utils/removeReservedFields.d.ts +2 -3
- package/lib/typescript/utils/removeReservedFields.d.ts.map +1 -1
- package/lib/typescript/utils/utils.d.ts +10 -10
- package/lib/typescript/utils/utils.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/components/Attachment/AudioAttachment.tsx +12 -6
- package/src/components/Attachment/FileAttachmentGroup.tsx +3 -1
- package/src/components/Attachment/Gallery.tsx +22 -7
- package/src/components/Attachment/ImageReloadIndicator.tsx +4 -5
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -10
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +9 -37
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +27 -23
- package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +12 -12
- package/src/components/Channel/Channel.tsx +423 -361
- package/src/components/Channel/__tests__/Channel.test.js +10 -3
- package/src/components/Channel/hooks/useChannelDataState.ts +2 -4
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
- package/src/components/Channel/hooks/useMessageListPagination.tsx +150 -150
- package/src/components/Chat/Chat.tsx +0 -9
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +8 -7
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +5 -4
- package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +5 -4
- package/src/components/ImageGallery/__tests__/ImageGalleryOverlay.test.tsx +3 -2
- package/src/components/KeyboardCompatibleView/KeyboardCompatibleView.tsx +12 -5
- package/src/components/Message/Message.tsx +16 -15
- package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -3
- package/src/components/Message/MessageSimple/MessageSimple.tsx +112 -70
- package/src/components/Message/MessageSimple/MessageStatus.tsx +19 -17
- package/src/components/Message/MessageSimple/MessageTextContainer.tsx +3 -3
- package/src/components/Message/MessageSimple/__tests__/MessageStatus.test.js +11 -5
- package/src/components/Message/MessageSimple/__tests__/MessageTextContainer.test.tsx +5 -4
- package/src/components/Message/MessageSimple/utils/renderText.tsx +2 -3
- package/src/components/Message/hooks/useCreateMessageContext.ts +3 -0
- package/src/components/Message/hooks/useMessageActionHandlers.ts +1 -3
- package/src/components/Message/hooks/useMessageActions.tsx +4 -3
- package/src/components/MessageInput/FileUploadPreview.tsx +41 -70
- package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
- package/src/components/MessageInput/InputButtons.tsx +14 -10
- package/src/components/MessageInput/MessageInput.tsx +28 -30
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
- package/src/components/MessageInput/__tests__/MessageInput.test.js +3 -1
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +1 -0
- package/src/components/MessageInput/hooks/useAudioController.tsx +6 -5
- package/src/components/MessageList/MessageList.tsx +253 -137
- package/src/components/MessageList/MessageSystem.tsx +2 -2
- package/src/components/MessageList/hooks/useMessageList.ts +82 -64
- package/src/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.ts +2 -2
- package/src/components/MessageList/utils/getGroupStyles.ts +7 -5
- package/src/components/MessageList/utils/getLastReceivedMessage.ts +3 -3
- package/src/components/MessageList/utils/getReadState.ts +27 -0
- package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +2 -3
- package/src/components/MessageMenu/hooks/useFetchReactions.ts +2 -3
- package/src/components/Poll/components/Button.tsx +2 -4
- package/src/components/Poll/components/PollResults/PollResultItem.tsx +2 -3
- package/src/components/Reply/Reply.tsx +1 -2
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +318 -847
- package/src/components/Thread/components/ThreadFooterComponent.tsx +31 -9
- package/src/components/ThreadList/ThreadListItem.tsx +6 -4
- package/src/components/UIComponents/BottomSheetModal.tsx +11 -7
- package/src/components/index.ts +2 -1
- package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +5 -4
- package/src/contexts/channelsStateContext/useChannelState.ts +5 -1
- package/src/contexts/debugContext/DebugContext.tsx +2 -4
- package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +5 -4
- package/src/contexts/messageContext/MessageContext.tsx +6 -4
- package/src/contexts/messageInputContext/MessageInputContext.tsx +295 -262
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +10 -6
- package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +6 -5
- package/src/contexts/messageInputContext/__tests__/updateMessage.test.tsx +3 -5
- package/src/contexts/messageInputContext/__tests__/useMessageDetailsForState.test.tsx +14 -9
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +7 -3
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +37 -40
- package/src/contexts/messageInputContext/utils/utils.ts +6 -8
- package/src/contexts/messagesContext/MessagesContext.tsx +26 -20
- package/src/contexts/pollContext/pollContext.tsx +2 -4
- package/src/contexts/suggestionsContext/SuggestionsContext.tsx +33 -14
- package/src/contexts/themeContext/utils/theme.ts +2 -0
- package/src/contexts/threadContext/ThreadContext.tsx +4 -6
- package/src/contexts/threadsContext/ThreadListItemContext.tsx +3 -5
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useAudioPlayer.ts +37 -31
- package/src/hooks/useStableCallback.ts +37 -0
- package/src/hooks/useTranslatedMessage.ts +2 -2
- package/src/i18n/en.json +3 -0
- package/src/i18n/es.json +3 -0
- package/src/i18n/fr.json +3 -0
- package/src/i18n/he.json +3 -0
- package/src/i18n/hi.json +2 -0
- package/src/i18n/it.json +3 -0
- package/src/i18n/ja.json +1 -0
- package/src/i18n/ko.json +1 -0
- package/src/i18n/nl.json +2 -0
- package/src/i18n/pt-br.json +3 -0
- package/src/i18n/ru.json +4 -0
- package/src/i18n/tr.json +2 -0
- package/src/mock-builders/api/channelMocks.tsx +2 -8
- package/src/native.ts +13 -8
- package/src/store/apis/insertReaction.ts +2 -2
- package/src/store/apis/updateMessage.ts +2 -2
- package/src/store/apis/updateReaction.ts +2 -2
- package/src/store/mappers/mapMessageToStorable.ts +2 -2
- package/src/types/stream-chat-common-custom-data.d.ts +22 -22
- package/src/types/types.ts +35 -54
- package/src/utils/compressImage.ts +3 -4
- package/src/utils/removeReservedFields.ts +3 -5
- package/src/utils/utils.ts +25 -16
- package/src/version.json +1 -1
- package/lib/commonjs/components/MessageList/hooks/useLastReadData.js +0 -20
- package/lib/commonjs/components/MessageList/hooks/useLastReadData.js.map +0 -1
- package/lib/commonjs/components/MessageList/utils/getReadStates.js +0 -34
- package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +0 -1
- package/lib/module/components/MessageList/hooks/useLastReadData.js +0 -20
- package/lib/module/components/MessageList/hooks/useLastReadData.js.map +0 -1
- package/lib/module/components/MessageList/utils/getReadStates.js +0 -34
- package/lib/module/components/MessageList/utils/getReadStates.js.map +0 -1
- package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts +0 -12
- package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts.map +0 -1
- package/lib/typescript/components/MessageList/utils/getReadStates.d.ts +0 -5
- package/lib/typescript/components/MessageList/utils/getReadStates.d.ts.map +0 -1
- package/src/components/MessageList/hooks/useLastReadData.ts +0 -29
- package/src/components/MessageList/utils/getReadStates.ts +0 -55
|
@@ -37,6 +37,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
|
37
37
|
var _ThreadContext = require("../../contexts/threadContext/ThreadContext");
|
|
38
38
|
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
39
39
|
var _TypingContext = require("../../contexts/typingContext/TypingContext");
|
|
40
|
+
var _hooks = require("../../hooks");
|
|
40
41
|
var _useAppStateListener = require("../../hooks/useAppStateListener");
|
|
41
42
|
var _icons = require("../../icons");
|
|
42
43
|
var _native = require("../../native");
|
|
@@ -60,6 +61,7 @@ var _Gallery = require("../Attachment/Gallery");
|
|
|
60
61
|
var _Giphy = require("../Attachment/Giphy");
|
|
61
62
|
var _ImageLoadingFailedIndicator = require("../Attachment/ImageLoadingFailedIndicator");
|
|
62
63
|
var _ImageLoadingIndicator = require("../Attachment/ImageLoadingIndicator");
|
|
64
|
+
var _ImageReloadIndicator = require("../Attachment/ImageReloadIndicator");
|
|
63
65
|
var _VideoThumbnail = require("../Attachment/VideoThumbnail");
|
|
64
66
|
var _AutoCompleteSuggestionHeader = require("../AutoCompleteInput/AutoCompleteSuggestionHeader");
|
|
65
67
|
var _AutoCompleteSuggestionItem = require("../AutoCompleteInput/AutoCompleteSuggestionItem");
|
|
@@ -169,7 +171,7 @@ var debounceOptions = {
|
|
|
169
171
|
trailing: true
|
|
170
172
|
};
|
|
171
173
|
var ChannelWithContext = function ChannelWithContext(props) {
|
|
172
|
-
var _channel$getConfig, _channel$data, _ref19, _channelState$members, _channelState$read, _ref20, _channelMessagesState3, _channelState$typing, _channelMessagesState4;
|
|
174
|
+
var _channel$getConfig, _channel$data, _ref19, _channelState$members, _channelState$read, _getChannelConfigSafe, _getChannelConfigSafe2, _ref20, _channelMessagesState3, _channelState$typing, _channelMessagesState4;
|
|
173
175
|
var additionalKeyboardAvoidingViewProps = props.additionalKeyboardAvoidingViewProps,
|
|
174
176
|
additionalPressableProps = props.additionalPressableProps,
|
|
175
177
|
additionalTextInputProps = props.additionalTextInputProps,
|
|
@@ -286,8 +288,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
286
288
|
handleThreadReply = props.handleThreadReply,
|
|
287
289
|
_props$hasCameraPicke = props.hasCameraPicker,
|
|
288
290
|
hasCameraPicker = _props$hasCameraPicke === void 0 ? (0, _native.isImagePickerAvailable)() : _props$hasCameraPicke,
|
|
289
|
-
|
|
290
|
-
hasCommands = _props$hasCommands === void 0 ? true : _props$hasCommands,
|
|
291
|
+
hasCommands = props.hasCommands,
|
|
291
292
|
hasCreatePoll = props.hasCreatePoll,
|
|
292
293
|
_props$hasFilePicker = props.hasFilePicker,
|
|
293
294
|
hasFilePicker = _props$hasFilePicker === void 0 ? (0, _native.isDocumentPickerAvailable)() : _props$hasFilePicker,
|
|
@@ -301,6 +302,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
301
302
|
ImageLoadingFailedIndicator = _props$ImageLoadingFa === void 0 ? _ImageLoadingFailedIndicator.ImageLoadingFailedIndicator : _props$ImageLoadingFa,
|
|
302
303
|
_props$ImageLoadingIn = props.ImageLoadingIndicator,
|
|
303
304
|
ImageLoadingIndicator = _props$ImageLoadingIn === void 0 ? _ImageLoadingIndicator.ImageLoadingIndicator : _props$ImageLoadingIn,
|
|
305
|
+
_props$ImageReloadInd = props.ImageReloadIndicator,
|
|
306
|
+
ImageReloadIndicator = _props$ImageReloadInd === void 0 ? _ImageReloadIndicator.ImageReloadIndicator : _props$ImageReloadInd,
|
|
304
307
|
_props$ImageUploadPre = props.ImageUploadPreview,
|
|
305
308
|
ImageUploadPreview = _props$ImageUploadPre === void 0 ? _ImageUploadPreview.ImageUploadPreview : _props$ImageUploadPre,
|
|
306
309
|
_props$initialScrollT = props.initialScrollToFirstUnreadMessage,
|
|
@@ -518,6 +521,9 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
518
521
|
setTargetedMessage = _useTargetedMessage.setTargetedMessage,
|
|
519
522
|
targetedMessage = _useTargetedMessage.targetedMessage;
|
|
520
523
|
var uploadAbortControllerRef = (0, _react.useRef)(new Map());
|
|
524
|
+
var optimisticallyUpdatedNewMessages = (0, _react.useMemo)(function () {
|
|
525
|
+
return new Set();
|
|
526
|
+
}, []);
|
|
521
527
|
var channelId = (channel == null ? void 0 : channel.id) || '';
|
|
522
528
|
var pollCreationEnabled = !channel.disconnected && !!(channel != null && channel.id) && (channel == null || (_channel$getConfig = channel.getConfig()) == null ? void 0 : _channel$getConfig.polls);
|
|
523
529
|
var _useChannelDataState = (0, _useChannelDataState2.useChannelDataState)(channel),
|
|
@@ -537,23 +543,39 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
537
543
|
loadMore = _useMessageListPagina.loadMore,
|
|
538
544
|
loadMoreRecent = _useMessageListPagina.loadMoreRecent,
|
|
539
545
|
channelMessagesState = _useMessageListPagina.state;
|
|
540
|
-
var
|
|
546
|
+
var setReadThrottled = (0, _react.useMemo)(function () {
|
|
547
|
+
return (0, _throttle["default"])(function () {
|
|
548
|
+
if (channel) {
|
|
549
|
+
setRead(channel);
|
|
550
|
+
}
|
|
551
|
+
}, stateUpdateThrottleInterval, throttleOptions);
|
|
552
|
+
}, [channel, stateUpdateThrottleInterval, setRead]);
|
|
553
|
+
var copyMessagesStateFromChannelThrottled = (0, _react.useMemo)(function () {
|
|
554
|
+
return (0, _throttle["default"])(function () {
|
|
555
|
+
if (channel) {
|
|
556
|
+
copyMessagesStateFromChannel(channel);
|
|
557
|
+
}
|
|
558
|
+
}, newMessageStateUpdateThrottleInterval, throttleOptions);
|
|
559
|
+
}, [channel, newMessageStateUpdateThrottleInterval, copyMessagesStateFromChannel]);
|
|
541
560
|
var copyChannelState = (0, _react.useMemo)(function () {
|
|
542
561
|
return (0, _throttle["default"])(function () {
|
|
543
562
|
if (channel) {
|
|
544
563
|
copyStateFromChannel(channel);
|
|
545
564
|
copyMessagesStateFromChannel(channel);
|
|
546
565
|
}
|
|
547
|
-
},
|
|
548
|
-
}, [channel,
|
|
549
|
-
var handleEvent = function
|
|
566
|
+
}, stateUpdateThrottleInterval, throttleOptions);
|
|
567
|
+
}, [stateUpdateThrottleInterval, channel, copyStateFromChannel, copyMessagesStateFromChannel]);
|
|
568
|
+
var handleEvent = (0, _hooks.useStableCallback)(function (event) {
|
|
550
569
|
if (shouldSyncChannel) {
|
|
551
570
|
if (event.type.startsWith('poll.') || event.type === 'user.watching.start' || event.type === 'user.watching.stop') {
|
|
552
571
|
return;
|
|
553
572
|
}
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
573
|
+
if (event.type === 'typing.start' || event.type === 'typing.stop') {
|
|
574
|
+
var _event$user;
|
|
575
|
+
if (((_event$user = event.user) == null ? void 0 : _event$user.id) !== client.userID) {
|
|
576
|
+
setTyping(channel);
|
|
577
|
+
}
|
|
578
|
+
return;
|
|
557
579
|
} else {
|
|
558
580
|
if (thread != null && thread.id) {
|
|
559
581
|
var _event$message;
|
|
@@ -583,10 +605,23 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
583
605
|
setChannelUnreadState(undefined);
|
|
584
606
|
}
|
|
585
607
|
if (channel && channel.initialized) {
|
|
608
|
+
if (event.type === 'message.new' || event.type === 'notification.message_new') {
|
|
609
|
+
var _event$message$id, _event$message2, _event$user2;
|
|
610
|
+
var _messageId = (_event$message$id = (_event$message2 = event.message) == null ? void 0 : _event$message2.id) != null ? _event$message$id : '';
|
|
611
|
+
if (((_event$user2 = event.user) == null ? void 0 : _event$user2.id) !== client.userID || !optimisticallyUpdatedNewMessages.has(_messageId)) {
|
|
612
|
+
copyMessagesStateFromChannelThrottled();
|
|
613
|
+
}
|
|
614
|
+
optimisticallyUpdatedNewMessages["delete"](_messageId);
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
if (event.type === 'message.read' || event.type === 'notification.mark_read') {
|
|
618
|
+
setReadThrottled();
|
|
619
|
+
return;
|
|
620
|
+
}
|
|
586
621
|
copyChannelState();
|
|
587
622
|
}
|
|
588
623
|
}
|
|
589
|
-
};
|
|
624
|
+
});
|
|
590
625
|
(0, _react.useEffect)(function () {
|
|
591
626
|
var listener;
|
|
592
627
|
var initChannel = function () {
|
|
@@ -598,7 +633,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
598
633
|
case 0:
|
|
599
634
|
setLastRead(new Date());
|
|
600
635
|
unreadCount = channel.countUnread();
|
|
601
|
-
if (!(!channel || !shouldSyncChannel
|
|
636
|
+
if (!(!channel || !shouldSyncChannel)) {
|
|
602
637
|
_context.next = 4;
|
|
603
638
|
break;
|
|
604
639
|
}
|
|
@@ -692,16 +727,6 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
692
727
|
unsubscribe = _client$on.unsubscribe;
|
|
693
728
|
return unsubscribe;
|
|
694
729
|
}, [channel == null ? void 0 : channel.cid, client]);
|
|
695
|
-
(0, _react.useEffect)(function () {
|
|
696
|
-
var handleEvent = function handleEvent(event) {
|
|
697
|
-
if (channel.cid === event.cid) {
|
|
698
|
-
setRead(channel);
|
|
699
|
-
}
|
|
700
|
-
};
|
|
701
|
-
var _client$on2 = client.on('notification.mark_read', handleEvent),
|
|
702
|
-
unsubscribe = _client$on2.unsubscribe;
|
|
703
|
-
return unsubscribe;
|
|
704
|
-
}, [channel, client, setRead]);
|
|
705
730
|
var threadPropsExists = !!threadProps;
|
|
706
731
|
(0, _react.useEffect)(function () {
|
|
707
732
|
if (threadProps && shouldSyncChannel) {
|
|
@@ -725,7 +750,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
725
750
|
}
|
|
726
751
|
}, [thread == null ? void 0 : thread.id, channelId]);
|
|
727
752
|
(0, _useAppStateListener.useAppStateListener)(undefined, handleAppBackground);
|
|
728
|
-
var
|
|
753
|
+
var markReadInternal = (0, _throttle["default"])(function () {
|
|
729
754
|
var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(options) {
|
|
730
755
|
var _ref3, _ref3$updateChannelUn, updateChannelUnreadState, response;
|
|
731
756
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
@@ -757,6 +782,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
757
782
|
last_read_message_id: response == null ? void 0 : response.event.last_read_message_id,
|
|
758
783
|
unread_messages: 0
|
|
759
784
|
});
|
|
785
|
+
setLastRead(new Date());
|
|
760
786
|
}
|
|
761
787
|
_context2.next = 17;
|
|
762
788
|
break;
|
|
@@ -774,147 +800,138 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
774
800
|
return _ref2.apply(this, arguments);
|
|
775
801
|
};
|
|
776
802
|
}(), defaultThrottleInterval, throttleOptions);
|
|
777
|
-
var
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
break;
|
|
786
|
-
}
|
|
787
|
-
return _context3.abrupt("return");
|
|
788
|
-
case 2:
|
|
789
|
-
setThreadLoadingMore(true);
|
|
790
|
-
_context3.prev = 3;
|
|
791
|
-
parentID = thread.id;
|
|
792
|
-
limit = 50;
|
|
793
|
-
channel.state.threads[parentID] = [];
|
|
794
|
-
_context3.next = 9;
|
|
795
|
-
return channel.getReplies(parentID, {
|
|
796
|
-
limit: limit
|
|
797
|
-
});
|
|
798
|
-
case 9:
|
|
799
|
-
queryResponse = _context3.sent;
|
|
800
|
-
updatedHasMore = queryResponse.messages.length === limit;
|
|
801
|
-
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
802
|
-
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
803
|
-
_context3.next = 15;
|
|
804
|
-
return channel.getMessagesById([parentID]);
|
|
805
|
-
case 15:
|
|
806
|
-
_yield$channel$getMes = _context3.sent;
|
|
807
|
-
messages = _yield$channel$getMes.messages;
|
|
808
|
-
_messages = (0, _slicedToArray2["default"])(messages, 1), threadMessage = _messages[0];
|
|
809
|
-
if (threadMessage && !threadInstance) {
|
|
810
|
-
formattedMessage = channel.state.formatMessage(threadMessage);
|
|
811
|
-
setThread(formattedMessage);
|
|
812
|
-
}
|
|
813
|
-
_context3.next = 27;
|
|
803
|
+
var markRead = (0, _hooks.useStableCallback)(markReadInternal);
|
|
804
|
+
var reloadThread = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
|
|
805
|
+
var parentID, limit, queryResponse, updatedHasMore, updatedThreadMessages, _yield$channel$getMes, messages, _messages, threadMessage, formattedMessage;
|
|
806
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
807
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
808
|
+
case 0:
|
|
809
|
+
if (!(!channel || !(thread != null && thread.id))) {
|
|
810
|
+
_context3.next = 2;
|
|
814
811
|
break;
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
setError(
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
812
|
+
}
|
|
813
|
+
return _context3.abrupt("return");
|
|
814
|
+
case 2:
|
|
815
|
+
setThreadLoadingMore(true);
|
|
816
|
+
_context3.prev = 3;
|
|
817
|
+
parentID = thread.id;
|
|
818
|
+
limit = 50;
|
|
819
|
+
channel.state.threads[parentID] = [];
|
|
820
|
+
_context3.next = 9;
|
|
821
|
+
return channel.getReplies(parentID, {
|
|
822
|
+
limit: limit
|
|
823
|
+
});
|
|
824
|
+
case 9:
|
|
825
|
+
queryResponse = _context3.sent;
|
|
826
|
+
updatedHasMore = queryResponse.messages.length === limit;
|
|
827
|
+
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
828
|
+
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
829
|
+
_context3.next = 15;
|
|
830
|
+
return channel.getMessagesById([parentID]);
|
|
831
|
+
case 15:
|
|
832
|
+
_yield$channel$getMes = _context3.sent;
|
|
833
|
+
messages = _yield$channel$getMes.messages;
|
|
834
|
+
_messages = (0, _slicedToArray2["default"])(messages, 1), threadMessage = _messages[0];
|
|
835
|
+
if (threadMessage && !threadInstance) {
|
|
836
|
+
formattedMessage = channel.state.formatMessage(threadMessage);
|
|
837
|
+
setThread(formattedMessage);
|
|
838
|
+
}
|
|
839
|
+
_context3.next = 27;
|
|
840
|
+
break;
|
|
841
|
+
case 21:
|
|
842
|
+
_context3.prev = 21;
|
|
843
|
+
_context3.t0 = _context3["catch"](3);
|
|
844
|
+
console.warn('Thread loading request failed with error', _context3.t0);
|
|
845
|
+
if (_context3.t0 instanceof Error) {
|
|
846
|
+
setError(_context3.t0);
|
|
847
|
+
} else {
|
|
848
|
+
setError(true);
|
|
849
|
+
}
|
|
850
|
+
setThreadLoadingMore(false);
|
|
851
|
+
throw _context3.t0;
|
|
852
|
+
case 27:
|
|
853
|
+
case "end":
|
|
854
|
+
return _context3.stop();
|
|
855
|
+
}
|
|
856
|
+
}, _callee3, null, [[3, 21]]);
|
|
857
|
+
})));
|
|
858
|
+
var resyncChannel = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
|
|
859
|
+
var parseMessage, _channelMessagesState, failedMessages, failedThreadMessages;
|
|
860
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
861
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
862
|
+
case 0:
|
|
863
|
+
if (!(!channel || syncingChannelRef.current)) {
|
|
864
|
+
_context4.next = 2;
|
|
865
|
+
break;
|
|
866
|
+
}
|
|
867
|
+
return _context4.abrupt("return");
|
|
868
|
+
case 2:
|
|
869
|
+
syncingChannelRef.current = true;
|
|
870
|
+
setError(false);
|
|
871
|
+
if (!(channelMessagesState != null && channelMessagesState.messages)) {
|
|
854
872
|
_context4.next = 7;
|
|
855
|
-
return channel == null ? void 0 : channel.watch({
|
|
856
|
-
messages: {
|
|
857
|
-
limit: channelMessagesState.messages.length + 30
|
|
858
|
-
}
|
|
859
|
-
});
|
|
860
|
-
case 7:
|
|
861
|
-
parseMessage = function parseMessage(message) {
|
|
862
|
-
var _message$pinned_at, _message$updated_at;
|
|
863
|
-
return Object.assign({}, message, {
|
|
864
|
-
created_at: message.created_at.toString(),
|
|
865
|
-
pinned_at: (_message$pinned_at = message.pinned_at) == null ? void 0 : _message$pinned_at.toString(),
|
|
866
|
-
updated_at: (_message$updated_at = message.updated_at) == null ? void 0 : _message$updated_at.toString()
|
|
867
|
-
});
|
|
868
|
-
};
|
|
869
|
-
_context4.prev = 8;
|
|
870
|
-
if (thread) {
|
|
871
|
-
_context4.next = 16;
|
|
872
|
-
break;
|
|
873
|
-
}
|
|
874
|
-
copyChannelState();
|
|
875
|
-
failedMessages = (_channelMessagesState = channelMessagesState.messages) == null ? void 0 : _channelMessagesState.filter(function (message) {
|
|
876
|
-
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
877
|
-
}).map(parseMessage);
|
|
878
|
-
if (failedMessages != null && failedMessages.length) {
|
|
879
|
-
channel.state.addMessagesSorted(failedMessages);
|
|
880
|
-
}
|
|
881
|
-
channel.state.setIsUpToDate(true);
|
|
882
|
-
_context4.next = 20;
|
|
883
873
|
break;
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
890
|
-
}).map(parseMessage) : [];
|
|
891
|
-
if (failedThreadMessages.length) {
|
|
892
|
-
channel.state.addMessagesSorted(failedThreadMessages);
|
|
893
|
-
setThreadMessages((0, _toConsumableArray2["default"])(channel.state.threads[thread.id]));
|
|
874
|
+
}
|
|
875
|
+
_context4.next = 7;
|
|
876
|
+
return channel == null ? void 0 : channel.watch({
|
|
877
|
+
messages: {
|
|
878
|
+
limit: channelMessagesState.messages.length + 30
|
|
894
879
|
}
|
|
895
|
-
|
|
896
|
-
|
|
880
|
+
});
|
|
881
|
+
case 7:
|
|
882
|
+
parseMessage = function parseMessage(message) {
|
|
883
|
+
var _message$pinned_at, _message$updated_at;
|
|
884
|
+
return Object.assign({}, message, {
|
|
885
|
+
created_at: message.created_at.toString(),
|
|
886
|
+
pinned_at: (_message$pinned_at = message.pinned_at) == null ? void 0 : _message$pinned_at.toString(),
|
|
887
|
+
updated_at: (_message$updated_at = message.updated_at) == null ? void 0 : _message$updated_at.toString()
|
|
888
|
+
});
|
|
889
|
+
};
|
|
890
|
+
_context4.prev = 8;
|
|
891
|
+
if (thread) {
|
|
892
|
+
_context4.next = 16;
|
|
897
893
|
break;
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
894
|
+
}
|
|
895
|
+
copyChannelState();
|
|
896
|
+
failedMessages = (_channelMessagesState = channelMessagesState.messages) == null ? void 0 : _channelMessagesState.filter(function (message) {
|
|
897
|
+
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
898
|
+
}).map(parseMessage);
|
|
899
|
+
if (failedMessages != null && failedMessages.length) {
|
|
900
|
+
channel.state.addMessagesSorted(failedMessages);
|
|
901
|
+
}
|
|
902
|
+
channel.state.setIsUpToDate(true);
|
|
903
|
+
_context4.next = 20;
|
|
904
|
+
break;
|
|
905
|
+
case 16:
|
|
906
|
+
_context4.next = 18;
|
|
907
|
+
return reloadThread();
|
|
908
|
+
case 18:
|
|
909
|
+
failedThreadMessages = thread ? threadMessages.filter(function (message) {
|
|
910
|
+
return message.status === _utils.MessageStatusTypes.FAILED;
|
|
911
|
+
}).map(parseMessage) : [];
|
|
912
|
+
if (failedThreadMessages.length) {
|
|
913
|
+
channel.state.addMessagesSorted(failedThreadMessages);
|
|
914
|
+
setThreadMessages((0, _toConsumableArray2["default"])(channel.state.threads[thread.id]));
|
|
915
|
+
}
|
|
916
|
+
case 20:
|
|
917
|
+
_context4.next = 25;
|
|
918
|
+
break;
|
|
919
|
+
case 22:
|
|
920
|
+
_context4.prev = 22;
|
|
921
|
+
_context4.t0 = _context4["catch"](8);
|
|
922
|
+
if (_context4.t0 instanceof Error) {
|
|
923
|
+
setError(_context4.t0);
|
|
924
|
+
} else {
|
|
925
|
+
setError(true);
|
|
926
|
+
}
|
|
927
|
+
case 25:
|
|
928
|
+
syncingChannelRef.current = false;
|
|
929
|
+
case 26:
|
|
930
|
+
case "end":
|
|
931
|
+
return _context4.stop();
|
|
932
|
+
}
|
|
933
|
+
}, _callee4, null, [[8, 22]]);
|
|
934
|
+
})));
|
|
918
935
|
var resyncChannelRef = (0, _react.useRef)(resyncChannel);
|
|
919
936
|
resyncChannelRef.current = resyncChannel;
|
|
920
937
|
(0, _react.useEffect)(function () {
|
|
@@ -949,32 +966,27 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
949
966
|
}
|
|
950
967
|
};
|
|
951
968
|
var clientChannelConfig = getChannelConfigSafely();
|
|
952
|
-
var reloadChannel = function () {
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
return function reloadChannel() {
|
|
974
|
-
return _ref6.apply(this, arguments);
|
|
975
|
-
};
|
|
976
|
-
}();
|
|
977
|
-
var loadChannelAroundMessage = function () {
|
|
969
|
+
var reloadChannel = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
|
|
970
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
971
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
972
|
+
case 0:
|
|
973
|
+
_context5.prev = 0;
|
|
974
|
+
_context5.next = 3;
|
|
975
|
+
return loadLatestMessages();
|
|
976
|
+
case 3:
|
|
977
|
+
_context5.next = 8;
|
|
978
|
+
break;
|
|
979
|
+
case 5:
|
|
980
|
+
_context5.prev = 5;
|
|
981
|
+
_context5.t0 = _context5["catch"](0);
|
|
982
|
+
console.warn('Reloading channel failed with error:', _context5.t0);
|
|
983
|
+
case 8:
|
|
984
|
+
case "end":
|
|
985
|
+
return _context5.stop();
|
|
986
|
+
}
|
|
987
|
+
}, _callee5, null, [[0, 5]]);
|
|
988
|
+
})));
|
|
989
|
+
var loadChannelAroundMessage = (0, _hooks.useStableCallback)(function () {
|
|
978
990
|
var _ref8 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(_ref7) {
|
|
979
991
|
var messageIdToLoadAround;
|
|
980
992
|
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
@@ -1035,23 +1047,28 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1035
1047
|
}
|
|
1036
1048
|
}, _callee6, null, [[3, 24], [6, 14]]);
|
|
1037
1049
|
}));
|
|
1038
|
-
return function
|
|
1050
|
+
return function (_x2) {
|
|
1039
1051
|
return _ref8.apply(this, arguments);
|
|
1040
1052
|
};
|
|
1041
|
-
}();
|
|
1042
|
-
var updateMessage = function
|
|
1053
|
+
}());
|
|
1054
|
+
var updateMessage = (0, _hooks.useStableCallback)(function (updatedMessage) {
|
|
1043
1055
|
var extraState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
1056
|
+
var throttled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1044
1057
|
if (!channel) {
|
|
1045
1058
|
return;
|
|
1046
1059
|
}
|
|
1047
1060
|
channel.state.addMessageSorted(updatedMessage, true);
|
|
1048
|
-
|
|
1061
|
+
if (throttled) {
|
|
1062
|
+
copyMessagesStateFromChannelThrottled();
|
|
1063
|
+
} else {
|
|
1064
|
+
copyMessagesStateFromChannel(channel);
|
|
1065
|
+
}
|
|
1049
1066
|
if (thread && updatedMessage.parent_id) {
|
|
1050
1067
|
extraState.threadMessages = channel.state.threads[updatedMessage.parent_id] || [];
|
|
1051
1068
|
setThreadMessages(extraState.threadMessages);
|
|
1052
1069
|
}
|
|
1053
|
-
};
|
|
1054
|
-
var replaceMessage = function
|
|
1070
|
+
});
|
|
1071
|
+
var replaceMessage = (0, _hooks.useStableCallback)(function (oldMessage, newMessage) {
|
|
1055
1072
|
if (channel) {
|
|
1056
1073
|
channel.state.removeMessage(oldMessage);
|
|
1057
1074
|
channel.state.addMessageSorted(newMessage, true);
|
|
@@ -1061,8 +1078,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1061
1078
|
setThreadMessages(_threadMessages);
|
|
1062
1079
|
}
|
|
1063
1080
|
}
|
|
1064
|
-
};
|
|
1065
|
-
var createMessagePreview = function
|
|
1081
|
+
});
|
|
1082
|
+
var createMessagePreview = (0, _hooks.useStableCallback)(function (_ref9) {
|
|
1066
1083
|
var attachments = _ref9.attachments,
|
|
1067
1084
|
mentioned_users = _ref9.mentioned_users,
|
|
1068
1085
|
parent_id = _ref9.parent_id,
|
|
@@ -1103,8 +1120,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1103
1120
|
preview.quoted_message = _quotedMessage;
|
|
1104
1121
|
}
|
|
1105
1122
|
return preview;
|
|
1106
|
-
};
|
|
1107
|
-
var uploadPendingAttachments = function () {
|
|
1123
|
+
});
|
|
1124
|
+
var uploadPendingAttachments = (0, _hooks.useStableCallback)(function () {
|
|
1108
1125
|
var _ref10 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(message) {
|
|
1109
1126
|
var _updatedMessage$attac;
|
|
1110
1127
|
var updatedMessage, i, _updatedMessage$attac2, attachment, image, file, _image$name, filename, controller, compressedUri, contentType, uploadResponse, _controller, response;
|
|
@@ -1187,7 +1204,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1187
1204
|
break;
|
|
1188
1205
|
case 38:
|
|
1189
1206
|
_context7.next = 40;
|
|
1190
|
-
return channel.sendFile(file.uri, file.name, file.
|
|
1207
|
+
return channel.sendFile(file.uri, file.name, file.type);
|
|
1191
1208
|
case 40:
|
|
1192
1209
|
_context7.t1 = _context7.sent;
|
|
1193
1210
|
case 41:
|
|
@@ -1215,11 +1232,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1215
1232
|
}
|
|
1216
1233
|
}, _callee7);
|
|
1217
1234
|
}));
|
|
1218
|
-
return function
|
|
1235
|
+
return function (_x3) {
|
|
1219
1236
|
return _ref10.apply(this, arguments);
|
|
1220
1237
|
};
|
|
1221
|
-
}();
|
|
1222
|
-
var sendMessageRequest = function () {
|
|
1238
|
+
}());
|
|
1239
|
+
var sendMessageRequest = (0, _hooks.useStableCallback)(function () {
|
|
1223
1240
|
var _ref11 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(message, retrying) {
|
|
1224
1241
|
var updatedMessage, extraFields, attachments, id, mentioned_users, parent_id, text, mentionedUserIds, messageData, messageResponse, _updatedMessage;
|
|
1225
1242
|
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
@@ -1270,7 +1287,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1270
1287
|
messageResponse = _context8.sent;
|
|
1271
1288
|
case 21:
|
|
1272
1289
|
if (!messageResponse.message) {
|
|
1273
|
-
_context8.next =
|
|
1290
|
+
_context8.next = 27;
|
|
1274
1291
|
break;
|
|
1275
1292
|
}
|
|
1276
1293
|
messageResponse.message.status = _utils.MessageStatusTypes.RECEIVED;
|
|
@@ -1288,16 +1305,13 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1288
1305
|
if (retrying) {
|
|
1289
1306
|
replaceMessage(message, messageResponse.message);
|
|
1290
1307
|
} else {
|
|
1291
|
-
updateMessage(messageResponse.message);
|
|
1308
|
+
updateMessage(messageResponse.message, {}, true);
|
|
1292
1309
|
}
|
|
1293
|
-
|
|
1294
|
-
message: messageResponse.message
|
|
1295
|
-
});
|
|
1296
|
-
case 28:
|
|
1310
|
+
case 27:
|
|
1297
1311
|
_context8.next = 40;
|
|
1298
1312
|
break;
|
|
1299
|
-
case
|
|
1300
|
-
_context8.prev =
|
|
1313
|
+
case 29:
|
|
1314
|
+
_context8.prev = 29;
|
|
1301
1315
|
_context8.t0 = _context8["catch"](0);
|
|
1302
1316
|
console.log(_context8.t0);
|
|
1303
1317
|
message.status = _utils.MessageStatusTypes.FAILED;
|
|
@@ -1308,6 +1322,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1308
1322
|
threadInstance == null || threadInstance.upsertReplyLocally == null || threadInstance.upsertReplyLocally({
|
|
1309
1323
|
message: _updatedMessage
|
|
1310
1324
|
});
|
|
1325
|
+
optimisticallyUpdatedNewMessages["delete"](message.id);
|
|
1311
1326
|
if (!enableOfflineSupport) {
|
|
1312
1327
|
_context8.next = 40;
|
|
1313
1328
|
break;
|
|
@@ -1322,13 +1337,13 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1322
1337
|
case "end":
|
|
1323
1338
|
return _context8.stop();
|
|
1324
1339
|
}
|
|
1325
|
-
}, _callee8, null, [[0,
|
|
1340
|
+
}, _callee8, null, [[0, 29]]);
|
|
1326
1341
|
}));
|
|
1327
|
-
return function
|
|
1342
|
+
return function (_x4, _x5) {
|
|
1328
1343
|
return _ref11.apply(this, arguments);
|
|
1329
1344
|
};
|
|
1330
|
-
}();
|
|
1331
|
-
var sendMessage = function () {
|
|
1345
|
+
}());
|
|
1346
|
+
var sendMessage = (0, _hooks.useStableCallback)(function () {
|
|
1332
1347
|
var _ref12 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(message) {
|
|
1333
1348
|
var _channel$state;
|
|
1334
1349
|
var messagePreview;
|
|
@@ -1348,31 +1363,32 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1348
1363
|
threadInstance == null || threadInstance.upsertReplyLocally == null || threadInstance.upsertReplyLocally({
|
|
1349
1364
|
message: messagePreview
|
|
1350
1365
|
});
|
|
1366
|
+
optimisticallyUpdatedNewMessages.add(messagePreview.id);
|
|
1351
1367
|
if (!enableOfflineSupport) {
|
|
1352
|
-
_context9.next =
|
|
1368
|
+
_context9.next = 8;
|
|
1353
1369
|
break;
|
|
1354
1370
|
}
|
|
1355
|
-
_context9.next =
|
|
1371
|
+
_context9.next = 8;
|
|
1356
1372
|
return dbApi.upsertMessages({
|
|
1357
1373
|
messages: [Object.assign({}, messagePreview, {
|
|
1358
1374
|
cid: channel.cid,
|
|
1359
1375
|
status: _utils.MessageStatusTypes.FAILED
|
|
1360
1376
|
})]
|
|
1361
1377
|
});
|
|
1362
|
-
case
|
|
1363
|
-
_context9.next =
|
|
1378
|
+
case 8:
|
|
1379
|
+
_context9.next = 10;
|
|
1364
1380
|
return sendMessageRequest(messagePreview);
|
|
1365
|
-
case
|
|
1381
|
+
case 10:
|
|
1366
1382
|
case "end":
|
|
1367
1383
|
return _context9.stop();
|
|
1368
1384
|
}
|
|
1369
1385
|
}, _callee9);
|
|
1370
1386
|
}));
|
|
1371
|
-
return function
|
|
1387
|
+
return function (_x6) {
|
|
1372
1388
|
return _ref12.apply(this, arguments);
|
|
1373
1389
|
};
|
|
1374
|
-
}();
|
|
1375
|
-
var retrySendMessage = function () {
|
|
1390
|
+
}());
|
|
1391
|
+
var retrySendMessage = (0, _hooks.useStableCallback)(function () {
|
|
1376
1392
|
var _ref13 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(message) {
|
|
1377
1393
|
var statusPendingMessage, messageWithoutReservedFields;
|
|
1378
1394
|
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
@@ -1393,27 +1409,27 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1393
1409
|
}
|
|
1394
1410
|
}, _callee10);
|
|
1395
1411
|
}));
|
|
1396
|
-
return function
|
|
1412
|
+
return function (_x7) {
|
|
1397
1413
|
return _ref13.apply(this, arguments);
|
|
1398
1414
|
};
|
|
1399
|
-
}();
|
|
1400
|
-
var editMessage = function
|
|
1415
|
+
}());
|
|
1416
|
+
var editMessage = (0, _hooks.useStableCallback)(function (updatedMessage) {
|
|
1401
1417
|
return doUpdateMessageRequest ? doUpdateMessageRequest((channel == null ? void 0 : channel.cid) || '', updatedMessage) : client.updateMessage(updatedMessage);
|
|
1402
|
-
};
|
|
1403
|
-
var setEditingState = function
|
|
1418
|
+
});
|
|
1419
|
+
var setEditingState = (0, _hooks.useStableCallback)(function (message) {
|
|
1404
1420
|
clearQuotedMessageState();
|
|
1405
1421
|
setEditing(message);
|
|
1406
|
-
};
|
|
1407
|
-
var setQuotedMessageState = function
|
|
1422
|
+
});
|
|
1423
|
+
var setQuotedMessageState = (0, _hooks.useStableCallback)(function (messageOrBoolean) {
|
|
1408
1424
|
setQuotedMessage(messageOrBoolean);
|
|
1409
|
-
};
|
|
1410
|
-
var clearEditingState = function
|
|
1425
|
+
});
|
|
1426
|
+
var clearEditingState = (0, _hooks.useStableCallback)(function () {
|
|
1411
1427
|
return setEditing(undefined);
|
|
1412
|
-
};
|
|
1413
|
-
var clearQuotedMessageState = function
|
|
1428
|
+
});
|
|
1429
|
+
var clearQuotedMessageState = (0, _hooks.useStableCallback)(function () {
|
|
1414
1430
|
return setQuotedMessage(undefined);
|
|
1415
|
-
};
|
|
1416
|
-
var removeMessage = function () {
|
|
1431
|
+
});
|
|
1432
|
+
var removeMessage = (0, _hooks.useStableCallback)(function () {
|
|
1417
1433
|
var _ref14 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee11(message) {
|
|
1418
1434
|
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
1419
1435
|
while (1) switch (_context11.prev = _context11.next) {
|
|
@@ -1439,11 +1455,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1439
1455
|
}
|
|
1440
1456
|
}, _callee11);
|
|
1441
1457
|
}));
|
|
1442
|
-
return function
|
|
1458
|
+
return function (_x8) {
|
|
1443
1459
|
return _ref14.apply(this, arguments);
|
|
1444
1460
|
};
|
|
1445
|
-
}();
|
|
1446
|
-
var sendReaction = function () {
|
|
1461
|
+
}());
|
|
1462
|
+
var sendReaction = (0, _hooks.useStableCallback)(function () {
|
|
1447
1463
|
var _ref15 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee12(type, messageId) {
|
|
1448
1464
|
var payload, sendReactionResponse;
|
|
1449
1465
|
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
@@ -1501,11 +1517,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1501
1517
|
}
|
|
1502
1518
|
}, _callee12);
|
|
1503
1519
|
}));
|
|
1504
|
-
return function
|
|
1520
|
+
return function (_x9, _x10) {
|
|
1505
1521
|
return _ref15.apply(this, arguments);
|
|
1506
1522
|
};
|
|
1507
|
-
}();
|
|
1508
|
-
var deleteMessage = function () {
|
|
1523
|
+
}());
|
|
1524
|
+
var deleteMessage = (0, _hooks.useStableCallback)(function () {
|
|
1509
1525
|
var _ref16 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee13(message) {
|
|
1510
1526
|
var updatedMessage, data;
|
|
1511
1527
|
return _regenerator["default"].wrap(function _callee13$(_context13) {
|
|
@@ -1552,7 +1568,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1552
1568
|
case 17:
|
|
1553
1569
|
updatedMessage = Object.assign({}, message, {
|
|
1554
1570
|
cid: channel.cid,
|
|
1555
|
-
deleted_at: new Date()
|
|
1571
|
+
deleted_at: new Date(),
|
|
1556
1572
|
type: 'deleted'
|
|
1557
1573
|
});
|
|
1558
1574
|
updateMessage(updatedMessage);
|
|
@@ -1581,11 +1597,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1581
1597
|
}
|
|
1582
1598
|
}, _callee13);
|
|
1583
1599
|
}));
|
|
1584
|
-
return function
|
|
1600
|
+
return function (_x11) {
|
|
1585
1601
|
return _ref16.apply(this, arguments);
|
|
1586
1602
|
};
|
|
1587
|
-
}();
|
|
1588
|
-
var deleteReaction = function () {
|
|
1603
|
+
}());
|
|
1604
|
+
var deleteReaction = (0, _hooks.useStableCallback)(function () {
|
|
1589
1605
|
var _ref17 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee14(type, messageId) {
|
|
1590
1606
|
var payload;
|
|
1591
1607
|
return _regenerator["default"].wrap(function _callee14$(_context14) {
|
|
@@ -1631,10 +1647,10 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1631
1647
|
}
|
|
1632
1648
|
}, _callee14);
|
|
1633
1649
|
}));
|
|
1634
|
-
return function
|
|
1650
|
+
return function (_x12, _x13) {
|
|
1635
1651
|
return _ref17.apply(this, arguments);
|
|
1636
1652
|
};
|
|
1637
|
-
}();
|
|
1653
|
+
}());
|
|
1638
1654
|
var openThread = (0, _react.useCallback)(function (message) {
|
|
1639
1655
|
setThread(message);
|
|
1640
1656
|
if (channel.initialized) {
|
|
@@ -1652,62 +1668,57 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1652
1668
|
setThreadLoadingMore(false);
|
|
1653
1669
|
setThreadMessages(updatedThreadMessages);
|
|
1654
1670
|
}, defaultDebounceInterval, debounceOptions)).current;
|
|
1655
|
-
var loadMoreThread = function () {
|
|
1656
|
-
var
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
_context15.next = 2;
|
|
1663
|
-
break;
|
|
1664
|
-
}
|
|
1665
|
-
return _context15.abrupt("return");
|
|
1666
|
-
case 2:
|
|
1667
|
-
setThreadLoadingMore(true);
|
|
1668
|
-
_context15.prev = 3;
|
|
1669
|
-
if (!channel) {
|
|
1670
|
-
_context15.next = 15;
|
|
1671
|
-
break;
|
|
1672
|
-
}
|
|
1673
|
-
parentID = thread.id;
|
|
1674
|
-
channel.state.threads[parentID] = threadMessages;
|
|
1675
|
-
oldestMessageID = threadMessages == null || (_threadMessages$ = threadMessages[0]) == null ? void 0 : _threadMessages$.id;
|
|
1676
|
-
limit = 50;
|
|
1677
|
-
_context15.next = 11;
|
|
1678
|
-
return channel.getReplies(parentID, {
|
|
1679
|
-
id_lt: oldestMessageID,
|
|
1680
|
-
limit: limit
|
|
1681
|
-
});
|
|
1682
|
-
case 11:
|
|
1683
|
-
queryResponse = _context15.sent;
|
|
1684
|
-
updatedHasMore = queryResponse.messages.length === limit;
|
|
1685
|
-
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
1686
|
-
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
1687
|
-
case 15:
|
|
1688
|
-
_context15.next = 23;
|
|
1671
|
+
var loadMoreThread = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee15() {
|
|
1672
|
+
var _threadMessages$, parentID, oldestMessageID, limit, queryResponse, updatedHasMore, updatedThreadMessages;
|
|
1673
|
+
return _regenerator["default"].wrap(function _callee15$(_context15) {
|
|
1674
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
1675
|
+
case 0:
|
|
1676
|
+
if (!(threadLoadingMore || !(thread != null && thread.id))) {
|
|
1677
|
+
_context15.next = 2;
|
|
1689
1678
|
break;
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1679
|
+
}
|
|
1680
|
+
return _context15.abrupt("return");
|
|
1681
|
+
case 2:
|
|
1682
|
+
setThreadLoadingMore(true);
|
|
1683
|
+
_context15.prev = 3;
|
|
1684
|
+
if (!channel) {
|
|
1685
|
+
_context15.next = 15;
|
|
1686
|
+
break;
|
|
1687
|
+
}
|
|
1688
|
+
parentID = thread.id;
|
|
1689
|
+
channel.state.threads[parentID] = threadMessages;
|
|
1690
|
+
oldestMessageID = threadMessages == null || (_threadMessages$ = threadMessages[0]) == null ? void 0 : _threadMessages$.id;
|
|
1691
|
+
limit = 50;
|
|
1692
|
+
_context15.next = 11;
|
|
1693
|
+
return channel.getReplies(parentID, {
|
|
1694
|
+
id_lt: oldestMessageID,
|
|
1695
|
+
limit: limit
|
|
1696
|
+
});
|
|
1697
|
+
case 11:
|
|
1698
|
+
queryResponse = _context15.sent;
|
|
1699
|
+
updatedHasMore = queryResponse.messages.length === limit;
|
|
1700
|
+
updatedThreadMessages = channel.state.threads[parentID] || [];
|
|
1701
|
+
loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
|
|
1702
|
+
case 15:
|
|
1703
|
+
_context15.next = 23;
|
|
1704
|
+
break;
|
|
1705
|
+
case 17:
|
|
1706
|
+
_context15.prev = 17;
|
|
1707
|
+
_context15.t0 = _context15["catch"](3);
|
|
1708
|
+
console.warn('Message pagination request failed with error', _context15.t0);
|
|
1709
|
+
if (_context15.t0 instanceof Error) {
|
|
1710
|
+
setError(_context15.t0);
|
|
1711
|
+
} else {
|
|
1712
|
+
setError(true);
|
|
1713
|
+
}
|
|
1714
|
+
setThreadLoadingMore(false);
|
|
1715
|
+
throw _context15.t0;
|
|
1716
|
+
case 23:
|
|
1717
|
+
case "end":
|
|
1718
|
+
return _context15.stop();
|
|
1719
|
+
}
|
|
1720
|
+
}, _callee15, null, [[3, 17]]);
|
|
1721
|
+
})));
|
|
1711
1722
|
var ownCapabilitiesContext = (0, _useCreateOwnCapabilitiesContext.useCreateOwnCapabilitiesContext)({
|
|
1712
1723
|
channel: channel,
|
|
1713
1724
|
overrideCapabilities: overrideOwnCapabilities
|
|
@@ -1749,8 +1760,6 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1749
1760
|
watcherCount: channelState.watcherCount,
|
|
1750
1761
|
watchers: channelState.watchers
|
|
1751
1762
|
});
|
|
1752
|
-
var sendMessageRef = (0, _react.useRef)(sendMessage);
|
|
1753
|
-
sendMessageRef.current = sendMessage;
|
|
1754
1763
|
var inputMessageInputContext = (0, _useCreateInputMessageInputContext.useCreateInputMessageInputContext)({
|
|
1755
1764
|
additionalTextInputProps: additionalTextInputProps,
|
|
1756
1765
|
asyncMessagesLockDistance: asyncMessagesLockDistance,
|
|
@@ -1782,7 +1791,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1782
1791
|
FileUploadPreview: FileUploadPreview,
|
|
1783
1792
|
handleAttachButtonPress: handleAttachButtonPress,
|
|
1784
1793
|
hasCameraPicker: hasCameraPicker,
|
|
1785
|
-
hasCommands: hasCommands,
|
|
1794
|
+
hasCommands: hasCommands != null ? hasCommands : ((_getChannelConfigSafe = (_getChannelConfigSafe2 = getChannelConfigSafely()) == null ? void 0 : _getChannelConfigSafe2.commands) != null ? _getChannelConfigSafe : []).length > 0,
|
|
1786
1795
|
hasFilePicker: hasFilePicker,
|
|
1787
1796
|
hasImagePicker: hasImagePicker,
|
|
1788
1797
|
ImageUploadPreview: ImageUploadPreview,
|
|
@@ -1803,9 +1812,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1803
1812
|
quotedMessage: quotedMessage,
|
|
1804
1813
|
SendButton: SendButton,
|
|
1805
1814
|
sendImageAsync: sendImageAsync,
|
|
1806
|
-
sendMessage:
|
|
1807
|
-
return sendMessageRef.current.apply(sendMessageRef, arguments);
|
|
1808
|
-
},
|
|
1815
|
+
sendMessage: sendMessage,
|
|
1809
1816
|
SendMessageDisallowedIndicator: SendMessageDisallowedIndicator,
|
|
1810
1817
|
setInputRef: setInputRef,
|
|
1811
1818
|
setQuotedMessageState: setQuotedMessageState,
|
|
@@ -1867,6 +1874,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1867
1874
|
hasCreatePoll: hasCreatePoll === undefined ? pollCreationEnabled : hasCreatePoll && pollCreationEnabled,
|
|
1868
1875
|
ImageLoadingFailedIndicator: ImageLoadingFailedIndicator,
|
|
1869
1876
|
ImageLoadingIndicator: ImageLoadingIndicator,
|
|
1877
|
+
ImageReloadIndicator: ImageReloadIndicator,
|
|
1870
1878
|
initialScrollToFirstUnreadMessage: !messageId && initialScrollToFirstUnreadMessage,
|
|
1871
1879
|
InlineDateSeparator: InlineDateSeparator,
|
|
1872
1880
|
InlineUnreadIndicator: InlineUnreadIndicator,
|
|
@@ -1931,11 +1939,13 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1931
1939
|
UrlPreview: UrlPreview,
|
|
1932
1940
|
VideoThumbnail: VideoThumbnail
|
|
1933
1941
|
});
|
|
1934
|
-
var suggestionsContext = {
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1942
|
+
var suggestionsContext = (0, _react.useMemo)(function () {
|
|
1943
|
+
return {
|
|
1944
|
+
AutoCompleteSuggestionHeader: AutoCompleteSuggestionHeader,
|
|
1945
|
+
AutoCompleteSuggestionItem: AutoCompleteSuggestionItem,
|
|
1946
|
+
AutoCompleteSuggestionList: AutoCompleteSuggestionList
|
|
1947
|
+
};
|
|
1948
|
+
}, [AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem, AutoCompleteSuggestionList]);
|
|
1939
1949
|
var threadContext = (0, _useCreateThreadContext.useCreateThreadContext)({
|
|
1940
1950
|
allowThreadMessagesInChannel: allowThreadMessagesInChannel,
|
|
1941
1951
|
closeThread: closeThread,
|