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
|
@@ -26,6 +26,7 @@ var _OverlayContext = require("../../contexts/overlayContext/OverlayContext");
|
|
|
26
26
|
var _PaginatedMessageListContext = require("../../contexts/paginatedMessageListContext/PaginatedMessageListContext");
|
|
27
27
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
28
28
|
var _ThreadContext = require("../../contexts/threadContext/ThreadContext");
|
|
29
|
+
var _hooks = require("../../hooks");
|
|
29
30
|
var _types = require("../../types/types");
|
|
30
31
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
32
|
var _excluded = ["contentContainerStyle", "ItemSeparatorComponent", "style"];
|
|
@@ -75,8 +76,27 @@ var keyExtractor = function keyExtractor(item) {
|
|
|
75
76
|
var flatListViewabilityConfig = {
|
|
76
77
|
viewAreaCoveragePercentThreshold: 1
|
|
77
78
|
};
|
|
79
|
+
var hasReadLastMessage = function hasReadLastMessage(channel, userId) {
|
|
80
|
+
var _channel$state$latest, _channel$state$read$u;
|
|
81
|
+
var latestMessageIdInChannel = (_channel$state$latest = channel.state.latestMessages.slice(-1)[0]) == null ? void 0 : _channel$state$latest.id;
|
|
82
|
+
var lastReadMessageIdServer = (_channel$state$read$u = channel.state.read[userId]) == null ? void 0 : _channel$state$read$u.last_read_message_id;
|
|
83
|
+
return latestMessageIdInChannel === lastReadMessageIdServer;
|
|
84
|
+
};
|
|
85
|
+
var getPreviousLastMessage = function getPreviousLastMessage(messages, newMessage) {
|
|
86
|
+
if (!newMessage) return;
|
|
87
|
+
var previousLastMessage;
|
|
88
|
+
for (var i = messages.length - 1; i >= 0; i--) {
|
|
89
|
+
var msg = messages[i];
|
|
90
|
+
if (!(msg != null && msg.id)) break;
|
|
91
|
+
if (msg.id !== newMessage.id) {
|
|
92
|
+
previousLastMessage = msg;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return previousLastMessage;
|
|
97
|
+
};
|
|
78
98
|
var MessageListWithContext = function MessageListWithContext(props) {
|
|
79
|
-
var
|
|
99
|
+
var _client$user3;
|
|
80
100
|
var LoadingMoreRecentIndicator = props.threadList ? _InlineLoadingMoreRecentThreadIndicator.InlineLoadingMoreRecentThreadIndicator : _InlineLoadingMoreRecentIndicator.InlineLoadingMoreRecentIndicator;
|
|
81
101
|
var additionalFlatListProps = props.additionalFlatListProps,
|
|
82
102
|
channel = props.channel,
|
|
@@ -120,6 +140,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
120
140
|
reloadChannel = props.reloadChannel,
|
|
121
141
|
ScrollToBottomButton = props.ScrollToBottomButton,
|
|
122
142
|
selectedPicker = props.selectedPicker,
|
|
143
|
+
setChannelUnreadState = props.setChannelUnreadState,
|
|
123
144
|
setFlatListRef = props.setFlatListRef,
|
|
124
145
|
setMessages = props.setMessages,
|
|
125
146
|
setSelectedPicker = props.setSelectedPicker,
|
|
@@ -160,6 +181,8 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
160
181
|
noGroupByUser: noGroupByUser,
|
|
161
182
|
threadList: threadList
|
|
162
183
|
}),
|
|
184
|
+
dateSeparatorsRef = _useMessageList.dateSeparatorsRef,
|
|
185
|
+
messageGroupStylesRef = _useMessageList.messageGroupStylesRef,
|
|
163
186
|
processedMessageList = _useMessageList.processedMessageList,
|
|
164
187
|
rawMessageList = _useMessageList.rawMessageList;
|
|
165
188
|
var messageListLengthBeforeUpdate = (0, _react.useRef)(0);
|
|
@@ -172,6 +195,12 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
172
195
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
173
196
|
autoscrollToRecent = _useState4[0],
|
|
174
197
|
setAutoscrollToRecent = _useState4[1];
|
|
198
|
+
var maintainVisibleContentPosition = (0, _react.useMemo)(function () {
|
|
199
|
+
return {
|
|
200
|
+
autoscrollToTopThreshold: autoscrollToRecent ? 10 : undefined,
|
|
201
|
+
minIndexForVisible: 1
|
|
202
|
+
};
|
|
203
|
+
}, [autoscrollToRecent]);
|
|
175
204
|
var onStartReachedTracker = (0, _react.useRef)({});
|
|
176
205
|
var onEndReachedTracker = (0, _react.useRef)({});
|
|
177
206
|
var onStartReachedInPromise = (0, _react.useRef)(null);
|
|
@@ -185,22 +214,22 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
185
214
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
186
215
|
hasMoved = _useState6[0],
|
|
187
216
|
setHasMoved = _useState6[1];
|
|
188
|
-
var
|
|
217
|
+
var lastReceivedId = (0, _react.useMemo)(function () {
|
|
218
|
+
var _getLastReceivedMessa;
|
|
219
|
+
return (_getLastReceivedMessa = (0, _getLastReceivedMessage.getLastReceivedMessage)(processedMessageList)) == null ? void 0 : _getLastReceivedMessa.id;
|
|
220
|
+
}, [processedMessageList]);
|
|
221
|
+
var _useState7 = (0, _react.useState)(false),
|
|
189
222
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
var _useState9 = (0, _react.useState)(
|
|
223
|
+
scrollToBottomButtonVisible = _useState8[0],
|
|
224
|
+
setScrollToBottomButtonVisible = _useState8[1];
|
|
225
|
+
var _useState9 = (0, _react.useState)(),
|
|
193
226
|
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
var _useState11 = (0, _react.useState)(),
|
|
197
|
-
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
198
|
-
stickyHeaderDate = _useState12[0],
|
|
199
|
-
setStickyHeaderDate = _useState12[1];
|
|
227
|
+
stickyHeaderDate = _useState10[0],
|
|
228
|
+
setStickyHeaderDate = _useState10[1];
|
|
200
229
|
var stickyHeaderDateRef = (0, _react.useRef)(undefined);
|
|
201
230
|
var channelRef = (0, _react.useRef)(channel);
|
|
202
231
|
channelRef.current = channel;
|
|
203
|
-
var updateStickyHeaderDateIfNeeded = function
|
|
232
|
+
var updateStickyHeaderDateIfNeeded = (0, _hooks.useStableCallback)(function (viewableItems) {
|
|
204
233
|
if (!viewableItems.length) {
|
|
205
234
|
return;
|
|
206
235
|
}
|
|
@@ -217,8 +246,8 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
217
246
|
setStickyHeaderDate(lastItem.item.created_at);
|
|
218
247
|
}
|
|
219
248
|
}
|
|
220
|
-
};
|
|
221
|
-
var updateStickyUnreadIndicator = function
|
|
249
|
+
});
|
|
250
|
+
var updateStickyUnreadIndicator = (0, _hooks.useStableCallback)(function (viewableItems) {
|
|
222
251
|
if (!viewableItems.length) {
|
|
223
252
|
setIsUnreadNotificationOpen(false);
|
|
224
253
|
return;
|
|
@@ -229,10 +258,15 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
229
258
|
}
|
|
230
259
|
var lastItem = viewableItems[viewableItems.length - 1];
|
|
231
260
|
if (lastItem) {
|
|
232
|
-
var
|
|
261
|
+
var lastItemMessage = lastItem.item;
|
|
262
|
+
var lastItemCreatedAt = lastItemMessage.created_at;
|
|
233
263
|
var unreadIndicatorDate = channelUnreadState == null ? void 0 : channelUnreadState.last_read.getTime();
|
|
234
264
|
var lastItemDate = lastItemCreatedAt.getTime();
|
|
235
|
-
if (!channel.state.messagePagination.hasPrev && processedMessageList[processedMessageList.length - 1].id ===
|
|
265
|
+
if (!channel.state.messagePagination.hasPrev && processedMessageList[processedMessageList.length - 1].id === lastItemMessage.id) {
|
|
266
|
+
setIsUnreadNotificationOpen(false);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
if (viewableItems.length === 1 && channel.countUnread() === 0 && lastItemMessage.user.id === client.userID) {
|
|
236
270
|
setIsUnreadNotificationOpen(false);
|
|
237
271
|
return;
|
|
238
272
|
}
|
|
@@ -242,7 +276,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
242
276
|
setIsUnreadNotificationOpen(false);
|
|
243
277
|
}
|
|
244
278
|
}
|
|
245
|
-
};
|
|
279
|
+
});
|
|
246
280
|
var unstableOnViewableItemsChanged = function unstableOnViewableItemsChanged(_ref) {
|
|
247
281
|
var viewableItems = _ref.viewableItems;
|
|
248
282
|
if (!viewableItems) {
|
|
@@ -255,7 +289,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
255
289
|
};
|
|
256
290
|
var onViewableItemsChanged = (0, _react.useRef)(unstableOnViewableItemsChanged);
|
|
257
291
|
onViewableItemsChanged.current = unstableOnViewableItemsChanged;
|
|
258
|
-
var
|
|
292
|
+
var stableOnViewableItemsChanged = (0, _react.useCallback)(function (_ref2) {
|
|
259
293
|
var viewableItems = _ref2.viewableItems;
|
|
260
294
|
onViewableItemsChanged.current({
|
|
261
295
|
viewableItems: viewableItems
|
|
@@ -271,21 +305,56 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
271
305
|
}
|
|
272
306
|
}, [disabled]);
|
|
273
307
|
(0, _react.useEffect)(function () {
|
|
274
|
-
var
|
|
275
|
-
var
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
308
|
+
var shouldMarkRead = function shouldMarkRead() {
|
|
309
|
+
var _client$user, _client$user2;
|
|
310
|
+
return !(channelUnreadState != null && channelUnreadState.first_unread_message_id) && !scrollToBottomButtonVisible && ((_client$user = client.user) == null ? void 0 : _client$user.id) && !hasReadLastMessage(channel, (_client$user2 = client.user) == null ? void 0 : _client$user2.id);
|
|
311
|
+
};
|
|
312
|
+
var handleEvent = function () {
|
|
313
|
+
var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(event) {
|
|
314
|
+
var _event$message, _event$message2;
|
|
315
|
+
var mainChannelUpdated;
|
|
316
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
317
|
+
while (1) switch (_context.prev = _context.next) {
|
|
318
|
+
case 0:
|
|
319
|
+
mainChannelUpdated = !((_event$message = event.message) != null && _event$message.parent_id) || ((_event$message2 = event.message) == null ? void 0 : _event$message2.show_in_channel);
|
|
320
|
+
if (!(scrollToBottomButtonVisible || channelUnreadState != null && channelUnreadState.first_unread_message_id)) {
|
|
321
|
+
_context.next = 5;
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
setChannelUnreadState(function (prev) {
|
|
325
|
+
var _prev$unread_messages, _prev$last_read;
|
|
326
|
+
var previousUnreadCount = (_prev$unread_messages = prev == null ? void 0 : prev.unread_messages) != null ? _prev$unread_messages : 0;
|
|
327
|
+
var previousLastMessage = getPreviousLastMessage(channel.state.messages, event.message);
|
|
328
|
+
return Object.assign({}, prev || {}, {
|
|
329
|
+
last_read: (_prev$last_read = prev == null ? void 0 : prev.last_read) != null ? _prev$last_read : previousUnreadCount === 0 && previousLastMessage != null && previousLastMessage.created_at ? new Date(previousLastMessage.created_at) : new Date(0),
|
|
330
|
+
unread_messages: previousUnreadCount + 1
|
|
331
|
+
});
|
|
332
|
+
});
|
|
333
|
+
_context.next = 8;
|
|
334
|
+
break;
|
|
335
|
+
case 5:
|
|
336
|
+
if (!(mainChannelUpdated && shouldMarkRead())) {
|
|
337
|
+
_context.next = 8;
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
_context.next = 8;
|
|
341
|
+
return markRead();
|
|
342
|
+
case 8:
|
|
343
|
+
case "end":
|
|
344
|
+
return _context.stop();
|
|
345
|
+
}
|
|
346
|
+
}, _callee);
|
|
347
|
+
}));
|
|
348
|
+
return function handleEvent(_x) {
|
|
349
|
+
return _ref3.apply(this, arguments);
|
|
350
|
+
};
|
|
351
|
+
}();
|
|
352
|
+
var listener = channel.on('message.new', handleEvent);
|
|
282
353
|
return function () {
|
|
283
354
|
listener == null || listener.unsubscribe();
|
|
284
355
|
};
|
|
285
|
-
}, [channel, markRead, scrollToBottomButtonVisible]);
|
|
356
|
+
}, [channel, channelUnreadState == null ? void 0 : channelUnreadState.first_unread_message_id, (_client$user3 = client.user) == null ? void 0 : _client$user3.id, markRead, scrollToBottomButtonVisible, setChannelUnreadState, threadList]);
|
|
286
357
|
(0, _react.useEffect)(function () {
|
|
287
|
-
var lastReceivedMessage = (0, _getLastReceivedMessage.getLastReceivedMessage)(processedMessageList);
|
|
288
|
-
setLastReceivedId(lastReceivedMessage == null ? void 0 : lastReceivedMessage.id);
|
|
289
358
|
var scrollToBottomIfNeeded = function scrollToBottomIfNeeded() {
|
|
290
359
|
var _topMessageBeforeUpda;
|
|
291
360
|
if (!client || !channel || rawMessageList.length === 0) {
|
|
@@ -353,32 +422,32 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
353
422
|
}
|
|
354
423
|
}
|
|
355
424
|
}, [channel, rawMessageList, threadList]);
|
|
356
|
-
var goToMessage = function () {
|
|
357
|
-
var
|
|
425
|
+
var goToMessage = (0, _hooks.useStableCallback)(function () {
|
|
426
|
+
var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(messageId) {
|
|
358
427
|
var indexOfParentInMessageList;
|
|
359
|
-
return _regenerator["default"].wrap(function
|
|
360
|
-
while (1) switch (
|
|
428
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
429
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
361
430
|
case 0:
|
|
362
431
|
indexOfParentInMessageList = processedMessageList.findIndex(function (message) {
|
|
363
432
|
return (message == null ? void 0 : message.id) === messageId;
|
|
364
433
|
});
|
|
365
|
-
|
|
434
|
+
_context2.prev = 1;
|
|
366
435
|
if (!(indexOfParentInMessageList === -1)) {
|
|
367
|
-
|
|
436
|
+
_context2.next = 8;
|
|
368
437
|
break;
|
|
369
438
|
}
|
|
370
|
-
|
|
439
|
+
_context2.next = 5;
|
|
371
440
|
return loadChannelAroundMessage({
|
|
372
441
|
messageId: messageId
|
|
373
442
|
});
|
|
374
443
|
case 5:
|
|
375
|
-
return
|
|
444
|
+
return _context2.abrupt("return");
|
|
376
445
|
case 8:
|
|
377
446
|
if (flatListRef.current) {
|
|
378
|
-
|
|
447
|
+
_context2.next = 10;
|
|
379
448
|
break;
|
|
380
449
|
}
|
|
381
|
-
return
|
|
450
|
+
return _context2.abrupt("return");
|
|
382
451
|
case 10:
|
|
383
452
|
clearTimeout(failScrollTimeoutId.current);
|
|
384
453
|
scrollToIndexFailedRetryCountRef.current = 0;
|
|
@@ -389,54 +458,54 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
389
458
|
index: indexOfParentInMessageList,
|
|
390
459
|
viewPosition: 0.5
|
|
391
460
|
});
|
|
392
|
-
return
|
|
461
|
+
return _context2.abrupt("return");
|
|
393
462
|
case 16:
|
|
394
|
-
|
|
463
|
+
_context2.next = 21;
|
|
395
464
|
break;
|
|
396
465
|
case 18:
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
console.warn('Error while scrolling to message',
|
|
466
|
+
_context2.prev = 18;
|
|
467
|
+
_context2.t0 = _context2["catch"](1);
|
|
468
|
+
console.warn('Error while scrolling to message', _context2.t0);
|
|
400
469
|
case 21:
|
|
401
470
|
case "end":
|
|
402
|
-
return
|
|
471
|
+
return _context2.stop();
|
|
403
472
|
}
|
|
404
|
-
},
|
|
473
|
+
}, _callee2, null, [[1, 18]]);
|
|
405
474
|
}));
|
|
406
|
-
return function
|
|
407
|
-
return
|
|
475
|
+
return function (_x2) {
|
|
476
|
+
return _ref4.apply(this, arguments);
|
|
408
477
|
};
|
|
409
|
-
}();
|
|
478
|
+
}());
|
|
410
479
|
(0, _react.useEffect)(function () {
|
|
411
480
|
if (!targetedMessage) {
|
|
412
481
|
return;
|
|
413
482
|
}
|
|
414
|
-
scrollToDebounceTimeoutRef.current = setTimeout((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function
|
|
483
|
+
scrollToDebounceTimeoutRef.current = setTimeout((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
|
|
415
484
|
var indexOfParentInMessageList;
|
|
416
|
-
return _regenerator["default"].wrap(function
|
|
417
|
-
while (1) switch (
|
|
485
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
486
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
418
487
|
case 0:
|
|
419
488
|
indexOfParentInMessageList = processedMessageList.findIndex(function (message) {
|
|
420
489
|
return (message == null ? void 0 : message.id) === targetedMessage;
|
|
421
490
|
});
|
|
422
491
|
if (!(indexOfParentInMessageList === -1)) {
|
|
423
|
-
|
|
492
|
+
_context3.next = 6;
|
|
424
493
|
break;
|
|
425
494
|
}
|
|
426
|
-
|
|
495
|
+
_context3.next = 4;
|
|
427
496
|
return loadChannelAroundMessage({
|
|
428
497
|
messageId: targetedMessage,
|
|
429
498
|
setTargetedMessage: setTargetedMessage
|
|
430
499
|
});
|
|
431
500
|
case 4:
|
|
432
|
-
|
|
501
|
+
_context3.next = 13;
|
|
433
502
|
break;
|
|
434
503
|
case 6:
|
|
435
504
|
if (flatListRef.current) {
|
|
436
|
-
|
|
505
|
+
_context3.next = 8;
|
|
437
506
|
break;
|
|
438
507
|
}
|
|
439
|
-
return
|
|
508
|
+
return _context3.abrupt("return");
|
|
440
509
|
case 8:
|
|
441
510
|
clearTimeout(scrollToDebounceTimeoutRef.current);
|
|
442
511
|
clearTimeout(failScrollTimeoutId.current);
|
|
@@ -449,16 +518,16 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
449
518
|
setTargetedMessage(undefined);
|
|
450
519
|
case 13:
|
|
451
520
|
case "end":
|
|
452
|
-
return
|
|
521
|
+
return _context3.stop();
|
|
453
522
|
}
|
|
454
|
-
},
|
|
523
|
+
}, _callee3);
|
|
455
524
|
})), WAIT_FOR_SCROLL_TIMEOUT);
|
|
456
525
|
}, [targetedMessage]);
|
|
457
526
|
var shouldApplyAndroidWorkaround = inverted && _reactNative.Platform.OS === 'android';
|
|
458
|
-
var renderItem = function
|
|
459
|
-
var _message$user;
|
|
460
|
-
var index =
|
|
461
|
-
message =
|
|
527
|
+
var renderItem = (0, _react.useCallback)(function (_ref6) {
|
|
528
|
+
var _message$user, _messageGroupStylesRe;
|
|
529
|
+
var index = _ref6.index,
|
|
530
|
+
message = _ref6.item;
|
|
462
531
|
if (!channel || channel.disconnected || !channel.initialized && !channel.offlineMode) {
|
|
463
532
|
return null;
|
|
464
533
|
}
|
|
@@ -469,12 +538,12 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
469
538
|
var showUnreadSeparator = isLastReadMessage && !isNewestMessage && (!!(channelUnreadState != null && channelUnreadState.first_unread_message_id) || !!(channelUnreadState != null && channelUnreadState.unread_messages));
|
|
470
539
|
var showUnreadUnderlay = !!shouldShowUnreadUnderlay && showUnreadSeparator;
|
|
471
540
|
var wrapMessageInTheme = client.userID === ((_message$user = message.user) == null ? void 0 : _message$user.id) && !!myMessageTheme;
|
|
472
|
-
var renderDateSeperator =
|
|
473
|
-
date: message.
|
|
541
|
+
var renderDateSeperator = dateSeparatorsRef.current[message.id] && (0, _jsxRuntime.jsx)(InlineDateSeparator, {
|
|
542
|
+
date: dateSeparatorsRef.current[message.id]
|
|
474
543
|
});
|
|
475
544
|
var renderMessage = (0, _jsxRuntime.jsx)(Message, {
|
|
476
545
|
goToMessage: goToMessage,
|
|
477
|
-
groupStyles: (
|
|
546
|
+
groupStyles: (_messageGroupStylesRe = messageGroupStylesRef.current[message.id]) != null ? _messageGroupStylesRe : [],
|
|
478
547
|
isTargetedMessage: highlightedMessageId === message.id,
|
|
479
548
|
lastReceivedId: lastReceivedId === message.id || message.quoted_message_id ? lastReceivedId : undefined,
|
|
480
549
|
message: message,
|
|
@@ -502,92 +571,82 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
502
571
|
children: [renderDateSeperator, renderMessage]
|
|
503
572
|
}), showUnreadUnderlay && (0, _jsxRuntime.jsx)(InlineUnreadIndicator, {})]
|
|
504
573
|
});
|
|
505
|
-
};
|
|
506
|
-
var maybeCallOnStartReached = function () {
|
|
507
|
-
var
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
if (!onEndReachedInPromise.current) {
|
|
531
|
-
_context3.next = 8;
|
|
532
|
-
break;
|
|
533
|
-
}
|
|
534
|
-
_context3.next = 8;
|
|
535
|
-
return onEndReachedInPromise.current;
|
|
536
|
-
case 8:
|
|
537
|
-
onStartReachedInPromise.current = (threadList && !!threadInstance && loadMoreRecentThread ? loadMoreRecentThread({}) : loadMoreRecent()).then(callback)["catch"](onError);
|
|
538
|
-
case 9:
|
|
539
|
-
case "end":
|
|
540
|
-
return _context3.stop();
|
|
541
|
-
}
|
|
542
|
-
}, _callee3);
|
|
543
|
-
}));
|
|
544
|
-
return function maybeCallOnStartReached() {
|
|
545
|
-
return _ref6.apply(this, arguments);
|
|
546
|
-
};
|
|
547
|
-
}();
|
|
548
|
-
var maybeCallOnEndReached = function () {
|
|
549
|
-
var _ref7 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
|
|
550
|
-
var callback, onError;
|
|
551
|
-
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
552
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
553
|
-
case 0:
|
|
554
|
-
if (!(processedMessageList != null && processedMessageList.length && onEndReachedTracker.current[processedMessageList.length])) {
|
|
555
|
-
_context4.next = 2;
|
|
556
|
-
break;
|
|
557
|
-
}
|
|
558
|
-
return _context4.abrupt("return");
|
|
559
|
-
case 2:
|
|
560
|
-
if (processedMessageList != null && processedMessageList.length) {
|
|
561
|
-
onEndReachedTracker.current[processedMessageList.length] = true;
|
|
562
|
-
}
|
|
563
|
-
callback = function callback() {
|
|
564
|
-
onEndReachedInPromise.current = null;
|
|
565
|
-
return Promise.resolve();
|
|
566
|
-
};
|
|
567
|
-
onError = function onError() {
|
|
568
|
-
setTimeout(function () {
|
|
569
|
-
onEndReachedTracker.current = {};
|
|
570
|
-
}, 2000);
|
|
571
|
-
};
|
|
572
|
-
if (!onStartReachedInPromise.current) {
|
|
573
|
-
_context4.next = 8;
|
|
574
|
-
break;
|
|
575
|
-
}
|
|
574
|
+
}, [InlineDateSeparator, InlineUnreadIndicator, Message, MessageSystem, channel, channelUnreadState == null ? void 0 : channelUnreadState.first_unread_message_id, channelUnreadState == null ? void 0 : channelUnreadState.last_read, channelUnreadState == null ? void 0 : channelUnreadState.last_read_message_id, channelUnreadState == null ? void 0 : channelUnreadState.unread_messages, client.userID, dateSeparatorsRef, goToMessage, highlightedMessageId, lastReceivedId, messageContainer, messageGroupStylesRef, modifiedTheme, myMessageTheme, onThreadSelect, screenPadding, shouldApplyAndroidWorkaround, shouldShowUnreadUnderlay, threadList]);
|
|
575
|
+
var maybeCallOnStartReached = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
|
|
576
|
+
var callback, onError;
|
|
577
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
578
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
579
|
+
case 0:
|
|
580
|
+
if (!(processedMessageList != null && processedMessageList.length && onStartReachedTracker.current[processedMessageList.length])) {
|
|
581
|
+
_context4.next = 2;
|
|
582
|
+
break;
|
|
583
|
+
}
|
|
584
|
+
return _context4.abrupt("return");
|
|
585
|
+
case 2:
|
|
586
|
+
if (processedMessageList != null && processedMessageList.length) {
|
|
587
|
+
onStartReachedTracker.current[processedMessageList.length] = true;
|
|
588
|
+
}
|
|
589
|
+
callback = function callback() {
|
|
590
|
+
onStartReachedInPromise.current = null;
|
|
591
|
+
return Promise.resolve();
|
|
592
|
+
};
|
|
593
|
+
onError = function onError() {
|
|
594
|
+
setTimeout(function () {
|
|
595
|
+
onStartReachedTracker.current = {};
|
|
596
|
+
}, 2000);
|
|
597
|
+
};
|
|
598
|
+
if (!onEndReachedInPromise.current) {
|
|
576
599
|
_context4.next = 8;
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
600
|
+
break;
|
|
601
|
+
}
|
|
602
|
+
_context4.next = 8;
|
|
603
|
+
return onEndReachedInPromise.current;
|
|
604
|
+
case 8:
|
|
605
|
+
onStartReachedInPromise.current = (threadList && !!threadInstance && loadMoreRecentThread ? loadMoreRecentThread({}) : loadMoreRecent()).then(callback)["catch"](onError);
|
|
606
|
+
case 9:
|
|
607
|
+
case "end":
|
|
608
|
+
return _context4.stop();
|
|
609
|
+
}
|
|
610
|
+
}, _callee4);
|
|
611
|
+
})));
|
|
612
|
+
var maybeCallOnEndReached = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() {
|
|
613
|
+
var callback, onError;
|
|
614
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
615
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
616
|
+
case 0:
|
|
617
|
+
if (!(processedMessageList != null && processedMessageList.length && onEndReachedTracker.current[processedMessageList.length])) {
|
|
618
|
+
_context5.next = 2;
|
|
619
|
+
break;
|
|
620
|
+
}
|
|
621
|
+
return _context5.abrupt("return");
|
|
622
|
+
case 2:
|
|
623
|
+
if (processedMessageList != null && processedMessageList.length) {
|
|
624
|
+
onEndReachedTracker.current[processedMessageList.length] = true;
|
|
625
|
+
}
|
|
626
|
+
callback = function callback() {
|
|
627
|
+
onEndReachedInPromise.current = null;
|
|
628
|
+
return Promise.resolve();
|
|
629
|
+
};
|
|
630
|
+
onError = function onError() {
|
|
631
|
+
setTimeout(function () {
|
|
632
|
+
onEndReachedTracker.current = {};
|
|
633
|
+
}, 2000);
|
|
634
|
+
};
|
|
635
|
+
if (!onStartReachedInPromise.current) {
|
|
636
|
+
_context5.next = 8;
|
|
637
|
+
break;
|
|
638
|
+
}
|
|
639
|
+
_context5.next = 8;
|
|
640
|
+
return onStartReachedInPromise.current;
|
|
641
|
+
case 8:
|
|
642
|
+
onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore()).then(callback)["catch"](onError);
|
|
643
|
+
case 9:
|
|
644
|
+
case "end":
|
|
645
|
+
return _context5.stop();
|
|
646
|
+
}
|
|
647
|
+
}, _callee5);
|
|
648
|
+
})));
|
|
649
|
+
var onUserScrollEvent = (0, _hooks.useStableCallback)(function (event) {
|
|
591
650
|
var nativeEvent = event.nativeEvent;
|
|
592
651
|
clearTimeout(onScrollEventTimeoutRef.current);
|
|
593
652
|
var offset = nativeEvent.contentOffset.y;
|
|
@@ -604,8 +663,8 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
604
663
|
if (isScrollAtEnd) {
|
|
605
664
|
maybeCallOnEndReached();
|
|
606
665
|
}
|
|
607
|
-
};
|
|
608
|
-
var handleScroll = function
|
|
666
|
+
});
|
|
667
|
+
var handleScroll = (0, _hooks.useStableCallback)(function (event) {
|
|
609
668
|
var messageListHasMessages = processedMessageList.length > 0;
|
|
610
669
|
var offset = event.nativeEvent.contentOffset.y;
|
|
611
670
|
var isScrollAtBottom = offset <= 150;
|
|
@@ -615,43 +674,42 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
615
674
|
if (onListScroll) {
|
|
616
675
|
onListScroll(event);
|
|
617
676
|
}
|
|
618
|
-
};
|
|
619
|
-
var goToNewMessages = function () {
|
|
620
|
-
var
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
_context5.next = 7;
|
|
628
|
-
break;
|
|
629
|
-
}
|
|
630
|
-
resetPaginationTrackersRef.current();
|
|
631
|
-
_context5.next = 5;
|
|
632
|
-
return reloadChannel();
|
|
633
|
-
case 5:
|
|
634
|
-
_context5.next = 8;
|
|
677
|
+
});
|
|
678
|
+
var goToNewMessages = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6() {
|
|
679
|
+
var isNotLatestSet;
|
|
680
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
681
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
682
|
+
case 0:
|
|
683
|
+
isNotLatestSet = channel.state.messages !== channel.state.latestMessages;
|
|
684
|
+
if (!isNotLatestSet) {
|
|
685
|
+
_context6.next = 7;
|
|
635
686
|
break;
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
687
|
+
}
|
|
688
|
+
resetPaginationTrackersRef.current();
|
|
689
|
+
_context6.next = 5;
|
|
690
|
+
return reloadChannel();
|
|
691
|
+
case 5:
|
|
692
|
+
_context6.next = 8;
|
|
693
|
+
break;
|
|
694
|
+
case 7:
|
|
695
|
+
if (flatListRef.current) {
|
|
696
|
+
flatListRef.current.scrollToOffset({
|
|
697
|
+
animated: true,
|
|
698
|
+
offset: 0
|
|
699
|
+
});
|
|
700
|
+
}
|
|
701
|
+
case 8:
|
|
702
|
+
setScrollToBottomButtonVisible(false);
|
|
703
|
+
_context6.next = 11;
|
|
704
|
+
return markRead({
|
|
705
|
+
updateChannelUnreadState: false
|
|
706
|
+
});
|
|
707
|
+
case 11:
|
|
708
|
+
case "end":
|
|
709
|
+
return _context6.stop();
|
|
710
|
+
}
|
|
711
|
+
}, _callee6);
|
|
712
|
+
})));
|
|
655
713
|
var scrollToIndexFailedRetryCountRef = (0, _react.useRef)(0);
|
|
656
714
|
var failScrollTimeoutId = (0, _react.useRef)(undefined);
|
|
657
715
|
var onScrollToIndexFailedRef = (0, _react.useRef)(function (info) {
|
|
@@ -702,45 +760,40 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
702
760
|
setMessages(messagesWithImages);
|
|
703
761
|
}
|
|
704
762
|
}, [imageString, isListActive, legacyImageViewerSwipeBehaviour, numberOfMessagesWithImages, threadExists, threadList]);
|
|
705
|
-
var dismissImagePicker = function
|
|
763
|
+
var dismissImagePicker = (0, _hooks.useStableCallback)(function () {
|
|
706
764
|
if (selectedPicker) {
|
|
707
765
|
setSelectedPicker(undefined);
|
|
708
766
|
closePicker();
|
|
709
767
|
}
|
|
710
|
-
};
|
|
711
|
-
var onScrollBeginDrag = function
|
|
768
|
+
});
|
|
769
|
+
var onScrollBeginDrag = (0, _hooks.useStableCallback)(function (event) {
|
|
712
770
|
!hasMoved && selectedPicker && setHasMoved(true);
|
|
713
771
|
onUserScrollEvent(event);
|
|
714
|
-
};
|
|
715
|
-
var onScrollEndDrag = function
|
|
772
|
+
});
|
|
773
|
+
var onScrollEndDrag = (0, _hooks.useStableCallback)(function (event) {
|
|
716
774
|
hasMoved && selectedPicker && setHasMoved(false);
|
|
717
775
|
onUserScrollEvent(event);
|
|
718
|
-
};
|
|
719
|
-
var refCallback = function
|
|
776
|
+
});
|
|
777
|
+
var refCallback = (0, _hooks.useStableCallback)(function (ref) {
|
|
720
778
|
flatListRef.current = ref;
|
|
721
779
|
if (setFlatListRef) {
|
|
722
780
|
setFlatListRef(ref);
|
|
723
781
|
}
|
|
724
|
-
};
|
|
725
|
-
var onUnreadNotificationClose = function () {
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
}));
|
|
740
|
-
return function onUnreadNotificationClose() {
|
|
741
|
-
return _ref9.apply(this, arguments);
|
|
742
|
-
};
|
|
743
|
-
}();
|
|
782
|
+
});
|
|
783
|
+
var onUnreadNotificationClose = (0, _hooks.useStableCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7() {
|
|
784
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
785
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
786
|
+
case 0:
|
|
787
|
+
_context7.next = 2;
|
|
788
|
+
return markRead();
|
|
789
|
+
case 2:
|
|
790
|
+
setIsUnreadNotificationOpen(false);
|
|
791
|
+
case 3:
|
|
792
|
+
case "end":
|
|
793
|
+
return _context7.stop();
|
|
794
|
+
}
|
|
795
|
+
}, _callee7);
|
|
796
|
+
})));
|
|
744
797
|
var debugRef = (0, _DebugContext.useDebugContext)();
|
|
745
798
|
var isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;
|
|
746
799
|
if (isDebugModeEnabled) {
|
|
@@ -781,6 +834,12 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
781
834
|
rest = (0, _objectWithoutProperties2["default"])(additionalFlatListProps, _excluded);
|
|
782
835
|
additionalFlatListPropsExcludingStyle = rest;
|
|
783
836
|
}
|
|
837
|
+
var flatListStyle = (0, _react.useMemo)(function () {
|
|
838
|
+
return [styles.listContainer, listContainer, additionalFlatListProps == null ? void 0 : additionalFlatListProps.style, shouldApplyAndroidWorkaround ? styles.invertAndroid : undefined];
|
|
839
|
+
}, [additionalFlatListProps == null ? void 0 : additionalFlatListProps.style, listContainer, shouldApplyAndroidWorkaround]);
|
|
840
|
+
var flatListContentContainerStyle = (0, _react.useMemo)(function () {
|
|
841
|
+
return [styles.contentContainer, additionalFlatListProps == null ? void 0 : additionalFlatListProps.contentContainerStyle, contentContainer];
|
|
842
|
+
}, [additionalFlatListProps == null ? void 0 : additionalFlatListProps.contentContainerStyle, contentContainer]);
|
|
784
843
|
if (!FlatList) {
|
|
785
844
|
return null;
|
|
786
845
|
}
|
|
@@ -808,7 +867,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
808
867
|
listType: "message"
|
|
809
868
|
}) : null
|
|
810
869
|
}) : (0, _jsxRuntime.jsx)(FlatList, Object.assign({
|
|
811
|
-
contentContainerStyle:
|
|
870
|
+
contentContainerStyle: flatListContentContainerStyle,
|
|
812
871
|
data: processedMessageList,
|
|
813
872
|
extraData: disabled,
|
|
814
873
|
inverted: shouldApplyAndroidWorkaround ? false : inverted,
|
|
@@ -817,10 +876,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
817
876
|
keyExtractor: keyExtractor,
|
|
818
877
|
ListFooterComponent: ListFooterComponent,
|
|
819
878
|
ListHeaderComponent: ListHeaderComponent,
|
|
820
|
-
maintainVisibleContentPosition:
|
|
821
|
-
autoscrollToTopThreshold: autoscrollToRecent ? 10 : undefined,
|
|
822
|
-
minIndexForVisible: 1
|
|
823
|
-
},
|
|
879
|
+
maintainVisibleContentPosition: maintainVisibleContentPosition,
|
|
824
880
|
maxToRenderPerBatch: 30,
|
|
825
881
|
onMomentumScrollEnd: onUserScrollEvent,
|
|
826
882
|
onScroll: handleScroll,
|
|
@@ -828,12 +884,12 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
828
884
|
onScrollEndDrag: onScrollEndDrag,
|
|
829
885
|
onScrollToIndexFailed: onScrollToIndexFailedRef.current,
|
|
830
886
|
onTouchEnd: dismissImagePicker,
|
|
831
|
-
onViewableItemsChanged:
|
|
887
|
+
onViewableItemsChanged: stableOnViewableItemsChanged,
|
|
832
888
|
ref: refCallback,
|
|
833
889
|
renderItem: renderItem,
|
|
834
890
|
scrollEnabled: overlay === 'none',
|
|
835
891
|
showsVerticalScrollIndicator: !shouldApplyAndroidWorkaround,
|
|
836
|
-
style:
|
|
892
|
+
style: flatListStyle,
|
|
837
893
|
testID: "message-flat-list",
|
|
838
894
|
viewabilityConfig: flatListViewabilityConfig
|
|
839
895
|
}, additionalFlatListPropsExcludingStyle)), (0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -875,6 +931,7 @@ var MessageList = exports.MessageList = function MessageList(props) {
|
|
|
875
931
|
NetworkDownIndicator = _useChannelContext.NetworkDownIndicator,
|
|
876
932
|
reloadChannel = _useChannelContext.reloadChannel,
|
|
877
933
|
scrollToFirstUnreadThreshold = _useChannelContext.scrollToFirstUnreadThreshold,
|
|
934
|
+
setChannelUnreadState = _useChannelContext.setChannelUnreadState,
|
|
878
935
|
setTargetedMessage = _useChannelContext.setTargetedMessage,
|
|
879
936
|
StickyHeader = _useChannelContext.StickyHeader,
|
|
880
937
|
targetedMessage = _useChannelContext.targetedMessage,
|
|
@@ -943,6 +1000,7 @@ var MessageList = exports.MessageList = function MessageList(props) {
|
|
|
943
1000
|
ScrollToBottomButton: ScrollToBottomButton,
|
|
944
1001
|
scrollToFirstUnreadThreshold: scrollToFirstUnreadThreshold,
|
|
945
1002
|
selectedPicker: selectedPicker,
|
|
1003
|
+
setChannelUnreadState: setChannelUnreadState,
|
|
946
1004
|
setMessages: setMessages,
|
|
947
1005
|
setSelectedPicker: setSelectedPicker,
|
|
948
1006
|
setTargetedMessage: setTargetedMessage,
|