stream-chat-react-native-core 7.0.0-rc.9 → 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/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/Channel/Channel.js +8 -5
- 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/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
- package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +12 -6
- 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/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/components/AudioRecorder/AudioRecordingButton.js +2 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +9 -7
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +18 -24
- package/lib/commonjs/components/MessageList/hooks/useMessageList.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 +1 -0
- 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/index.js +15 -4
- package/lib/commonjs/components/index.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.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/threadContext/ThreadContext.js.map +1 -1
- package/lib/commonjs/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
- package/lib/commonjs/hooks/index.js +11 -0
- package/lib/commonjs/hooks/index.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/utils/removeReservedFields.js.map +1 -1
- package/lib/commonjs/utils/utils.js +1 -3
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +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/Channel/Channel.js +8 -5
- 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/Chat/Chat.js.map +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
- package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js.map +1 -1
- package/lib/module/components/Message/Message.js +12 -6
- 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/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/components/AudioRecorder/AudioRecordingButton.js +2 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +9 -7
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +18 -24
- package/lib/module/components/MessageList/hooks/useMessageList.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 +1 -0
- 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/index.js +15 -4
- package/lib/module/components/index.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.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/threadContext/ThreadContext.js.map +1 -1
- package/lib/module/contexts/threadsContext/ThreadListItemContext.js.map +1 -1
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.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/utils/removeReservedFields.js.map +1 -1
- package/lib/module/utils/utils.js +1 -3
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +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/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 +4 -4
- 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.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/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/MessageList/MessageList.d.ts +3 -3
- 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 +11 -10
- package/lib/typescript/components/MessageList/hooks/useMessageList.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/index.d.ts +2 -1
- package/lib/typescript/components/index.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 +4 -5
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +24 -20
- 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/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 +1 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -1
- package/lib/typescript/hooks/useTranslatedMessage.d.ts +55 -55
- 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/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 +5 -6
- package/lib/typescript/utils/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/Attachment/Gallery.tsx +22 -7
- package/src/components/Attachment/ImageReloadIndicator.tsx +4 -5
- package/src/components/Channel/Channel.tsx +12 -9
- package/src/components/Channel/__tests__/Channel.test.js +2 -0
- package/src/components/Channel/hooks/useChannelDataState.ts +2 -4
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
- 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 +6 -1
- package/src/components/Message/Message.tsx +10 -13
- package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -3
- 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/components/AudioRecorder/AudioRecordingButton.tsx +1 -0
- package/src/components/MessageList/MessageList.tsx +24 -25
- package/src/components/MessageList/MessageSystem.tsx +2 -2
- package/src/components/MessageList/hooks/useMessageList.ts +48 -59
- 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 +0 -15
- package/src/components/Thread/components/ThreadFooterComponent.tsx +1 -0
- package/src/components/ThreadList/ThreadListItem.tsx +6 -4
- package/src/components/index.ts +2 -1
- 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 +5 -5
- 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/messagesContext/MessagesContext.tsx +25 -20
- package/src/contexts/pollContext/pollContext.tsx +2 -4
- package/src/contexts/threadContext/ThreadContext.tsx +4 -6
- package/src/contexts/threadsContext/ThreadListItemContext.tsx +3 -5
- package/src/hooks/index.ts +1 -0
- 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/utils/removeReservedFields.ts +3 -5
- package/src/utils/utils.ts +5 -10
- 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
package/src/utils/utils.ts
CHANGED
|
@@ -5,10 +5,6 @@ import EmojiRegex from 'emoji-regex';
|
|
|
5
5
|
import type { ChannelState, LocalMessage, MessageResponse } from 'stream-chat';
|
|
6
6
|
|
|
7
7
|
import { IconProps } from '../../src/icons/utils/base';
|
|
8
|
-
import {
|
|
9
|
-
MessagesWithStylesReadByAndDateSeparator,
|
|
10
|
-
MessageType,
|
|
11
|
-
} from '../components/MessageList/hooks/useMessageList';
|
|
12
8
|
import type { EmojiSearchIndex } from '../contexts/messageInputContext/MessageInputContext';
|
|
13
9
|
import { compiledEmojis } from '../emoji-data';
|
|
14
10
|
import type { TableRowJoinedUser } from '../store/types';
|
|
@@ -78,7 +74,7 @@ export const getIndicatorTypeForFileState = (
|
|
|
78
74
|
* @param message
|
|
79
75
|
* @returns boolean
|
|
80
76
|
*/
|
|
81
|
-
export const isBlockedMessage = (message:
|
|
77
|
+
export const isBlockedMessage = (message: LocalMessage | TableRowJoinedUser<'messages'>) => {
|
|
82
78
|
// The only indicator for the blocked message is its message type is error and that the message text contains "Message was blocked by moderation policies".
|
|
83
79
|
const pattern = /\bMessage was blocked by moderation policies\b/;
|
|
84
80
|
return message.type === 'error' && message.text && pattern.test(message.text);
|
|
@@ -89,7 +85,7 @@ export const isBlockedMessage = (message: MessageType | TableRowJoinedUser<'mess
|
|
|
89
85
|
* @param message
|
|
90
86
|
* @returns boolean
|
|
91
87
|
*/
|
|
92
|
-
export const isBouncedMessage = (message:
|
|
88
|
+
export const isBouncedMessage = (message: LocalMessage) =>
|
|
93
89
|
(message.type === 'error' &&
|
|
94
90
|
message?.moderation_details?.action === 'MESSAGE_RESPONSE_ACTION_BOUNCE') ||
|
|
95
91
|
message?.moderation?.action === 'bounce';
|
|
@@ -99,7 +95,7 @@ export const isBouncedMessage = (message: MessageType) =>
|
|
|
99
95
|
* @param message
|
|
100
96
|
* @returns boolean
|
|
101
97
|
*/
|
|
102
|
-
export const isEditedMessage = (message:
|
|
98
|
+
export const isEditedMessage = (message: LocalMessage) => !!message.message_text_updated_at;
|
|
103
99
|
|
|
104
100
|
/**
|
|
105
101
|
* Default emoji search index for auto complete text input
|
|
@@ -190,7 +186,7 @@ export const hasOnlyEmojis = (text: string) => {
|
|
|
190
186
|
* @param {LocalMessage} message - the message object to be stringified
|
|
191
187
|
* @returns {string} The stringified message
|
|
192
188
|
*/
|
|
193
|
-
export const stringifyMessage = (message: MessageResponse | LocalMessage
|
|
189
|
+
export const stringifyMessage = (message: MessageResponse | LocalMessage): string => {
|
|
194
190
|
const {
|
|
195
191
|
deleted_at,
|
|
196
192
|
i18n,
|
|
@@ -202,7 +198,6 @@ export const stringifyMessage = (message: MessageResponse | LocalMessage | Messa
|
|
|
202
198
|
type,
|
|
203
199
|
updated_at,
|
|
204
200
|
} = message;
|
|
205
|
-
const readBy = (message as MessagesWithStylesReadByAndDateSeparator)?.readBy ?? '';
|
|
206
201
|
return `${
|
|
207
202
|
latest_reactions ? latest_reactions.map(({ type, user }) => `${type}${user?.id}`).join() : ''
|
|
208
203
|
}${
|
|
@@ -214,7 +209,7 @@ export const stringifyMessage = (message: MessageResponse | LocalMessage | Messa
|
|
|
214
209
|
)
|
|
215
210
|
.join()
|
|
216
211
|
: ''
|
|
217
|
-
}${type}${deleted_at}${text}${
|
|
212
|
+
}${type}${deleted_at}${text}${reply_count}${status}${updated_at}${JSON.stringify(i18n)}`;
|
|
218
213
|
};
|
|
219
214
|
|
|
220
215
|
/**
|
package/src/version.json
CHANGED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2
|
-
value: true
|
|
3
|
-
});
|
|
4
|
-
exports.useLastReadData = void 0;
|
|
5
|
-
var _react = require("react");
|
|
6
|
-
var _getReadStates = require("../utils/getReadStates");
|
|
7
|
-
var useLastReadData = exports.useLastReadData = function useLastReadData(props) {
|
|
8
|
-
var messages = props.messages,
|
|
9
|
-
read = props.read,
|
|
10
|
-
_props$returnAllReadD = props.returnAllReadData,
|
|
11
|
-
returnAllReadData = _props$returnAllReadD === void 0 ? true : _props$returnAllReadD,
|
|
12
|
-
userID = props.userID;
|
|
13
|
-
return (0, _react.useMemo)(function () {
|
|
14
|
-
return (0, _getReadStates.getReadStates)(messages.filter(function (_ref) {
|
|
15
|
-
var user = _ref.user;
|
|
16
|
-
return (user == null ? void 0 : user.id) === userID;
|
|
17
|
-
}), read, returnAllReadData);
|
|
18
|
-
}, [messages, read, returnAllReadData, userID]);
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=useLastReadData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_getReadStates","useLastReadData","exports","props","messages","read","_props$returnAllReadD","returnAllReadData","userID","useMemo","getReadStates","filter","_ref","user","id"],"sourceRoot":"../../../../../src","sources":["components/MessageList/hooks/useLastReadData.ts"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AASO,IAAME,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,SAAlBA,eAAeA,CAAIE,KAA4B,EAAK;EAC/D,IAAQC,QAAQ,GAA6CD,KAAK,CAA1DC,QAAQ;IAAEC,IAAI,GAAuCF,KAAK,CAAhDE,IAAI;IAAAC,qBAAA,GAAuCH,KAAK,CAA1CI,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAAEE,MAAM,GAAKL,KAAK,CAAhBK,MAAM;EAExD,OAAO,IAAAC,cAAO,EACZ;IAAA,OACE,IAAAC,4BAAa,EACXN,QAAQ,CAACO,MAAM,CAAC,UAAAC,IAAA;MAAA,IAAGC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAA,OAAO,CAAAA,IAAI,oBAAJA,IAAI,CAAEC,EAAE,MAAKN,MAAM;IAAA,EAAC,EAClDH,IAAI,EACJE,iBACF,CAAC;EAAA,GACH,CAACH,QAAQ,EAAEC,IAAI,EAAEE,iBAAiB,EAAEC,MAAM,CAC5C,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2
|
-
value: true
|
|
3
|
-
});
|
|
4
|
-
exports.getReadStates = void 0;
|
|
5
|
-
var getReadStates = exports.getReadStates = function getReadStates(messages, read, returnAllReadData) {
|
|
6
|
-
var readData = {};
|
|
7
|
-
if (read) {
|
|
8
|
-
Object.values(read).forEach(function (readState) {
|
|
9
|
-
if (!readState.last_read) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
var userLastReadMsgId;
|
|
13
|
-
messages.forEach(function (msg) {
|
|
14
|
-
if (msg.created_at && msg.created_at < readState.last_read) {
|
|
15
|
-
userLastReadMsgId = msg.id;
|
|
16
|
-
if (returnAllReadData) {
|
|
17
|
-
if (!readData[userLastReadMsgId]) {
|
|
18
|
-
readData[userLastReadMsgId] = 0;
|
|
19
|
-
}
|
|
20
|
-
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
if (userLastReadMsgId && !returnAllReadData) {
|
|
25
|
-
if (!readData[userLastReadMsgId]) {
|
|
26
|
-
readData[userLastReadMsgId] = 0;
|
|
27
|
-
}
|
|
28
|
-
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return readData;
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=getReadStates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getReadStates","exports","messages","read","returnAllReadData","readData","Object","values","forEach","readState","last_read","userLastReadMsgId","msg","created_at","id"],"sourceRoot":"../../../../../src","sources":["components/MessageList/utils/getReadStates.ts"],"mappings":";;;;AAKO,IAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CACxBE,QAA6F,EAC7FC,IAA2B,EAC3BC,iBAA2B,EACxB;EACH,IAAMC,QAAgC,GAAG,CAAC,CAAC;EAE3C,IAAIF,IAAI,EAAE;IAQRG,MAAM,CAACC,MAAM,CAACJ,IAAI,CAAC,CAACK,OAAO,CAAC,UAACC,SAAS,EAAK;MACzC,IAAI,CAACA,SAAS,CAACC,SAAS,EAAE;QACxB;MACF;MAEA,IAAIC,iBAAqC;MAGzCT,QAAQ,CAACM,OAAO,CAAC,UAACI,GAAG,EAAK;QACxB,IAAIA,GAAG,CAACC,UAAU,IAAID,GAAG,CAACC,UAAU,GAAGJ,SAAS,CAACC,SAAS,EAAE;UAC1DC,iBAAiB,GAAGC,GAAG,CAACE,EAAE;UAE1B,IAAIV,iBAAiB,EAAE;YAErB,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;cAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;YACjC;YACAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;UAC/D;QACF;MACF,CAAC,CAAC;MAGF,IAAIA,iBAAiB,IAAI,CAACP,iBAAiB,EAAE;QAC3C,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;UAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;QACjC;QAEAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;MAC/D;IACF,CAAC,CAAC;EACJ;EAEA,OAAON,QAAQ;AACjB,CAAC","ignoreList":[]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2
|
-
value: true
|
|
3
|
-
});
|
|
4
|
-
exports.useLastReadData = void 0;
|
|
5
|
-
var _react = require("react");
|
|
6
|
-
var _getReadStates = require("../utils/getReadStates");
|
|
7
|
-
var useLastReadData = exports.useLastReadData = function useLastReadData(props) {
|
|
8
|
-
var messages = props.messages,
|
|
9
|
-
read = props.read,
|
|
10
|
-
_props$returnAllReadD = props.returnAllReadData,
|
|
11
|
-
returnAllReadData = _props$returnAllReadD === void 0 ? true : _props$returnAllReadD,
|
|
12
|
-
userID = props.userID;
|
|
13
|
-
return (0, _react.useMemo)(function () {
|
|
14
|
-
return (0, _getReadStates.getReadStates)(messages.filter(function (_ref) {
|
|
15
|
-
var user = _ref.user;
|
|
16
|
-
return (user == null ? void 0 : user.id) === userID;
|
|
17
|
-
}), read, returnAllReadData);
|
|
18
|
-
}, [messages, read, returnAllReadData, userID]);
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=useLastReadData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_getReadStates","useLastReadData","exports","props","messages","read","_props$returnAllReadD","returnAllReadData","userID","useMemo","getReadStates","filter","_ref","user","id"],"sourceRoot":"../../../../../src","sources":["components/MessageList/hooks/useLastReadData.ts"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AASO,IAAME,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,SAAlBA,eAAeA,CAAIE,KAA4B,EAAK;EAC/D,IAAQC,QAAQ,GAA6CD,KAAK,CAA1DC,QAAQ;IAAEC,IAAI,GAAuCF,KAAK,CAAhDE,IAAI;IAAAC,qBAAA,GAAuCH,KAAK,CAA1CI,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAAEE,MAAM,GAAKL,KAAK,CAAhBK,MAAM;EAExD,OAAO,IAAAC,cAAO,EACZ;IAAA,OACE,IAAAC,4BAAa,EACXN,QAAQ,CAACO,MAAM,CAAC,UAAAC,IAAA;MAAA,IAAGC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAA,OAAO,CAAAA,IAAI,oBAAJA,IAAI,CAAEC,EAAE,MAAKN,MAAM;IAAA,EAAC,EAClDH,IAAI,EACJE,iBACF,CAAC;EAAA,GACH,CAACH,QAAQ,EAAEC,IAAI,EAAEE,iBAAiB,EAAEC,MAAM,CAC5C,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2
|
-
value: true
|
|
3
|
-
});
|
|
4
|
-
exports.getReadStates = void 0;
|
|
5
|
-
var getReadStates = exports.getReadStates = function getReadStates(messages, read, returnAllReadData) {
|
|
6
|
-
var readData = {};
|
|
7
|
-
if (read) {
|
|
8
|
-
Object.values(read).forEach(function (readState) {
|
|
9
|
-
if (!readState.last_read) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
var userLastReadMsgId;
|
|
13
|
-
messages.forEach(function (msg) {
|
|
14
|
-
if (msg.created_at && msg.created_at < readState.last_read) {
|
|
15
|
-
userLastReadMsgId = msg.id;
|
|
16
|
-
if (returnAllReadData) {
|
|
17
|
-
if (!readData[userLastReadMsgId]) {
|
|
18
|
-
readData[userLastReadMsgId] = 0;
|
|
19
|
-
}
|
|
20
|
-
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
if (userLastReadMsgId && !returnAllReadData) {
|
|
25
|
-
if (!readData[userLastReadMsgId]) {
|
|
26
|
-
readData[userLastReadMsgId] = 0;
|
|
27
|
-
}
|
|
28
|
-
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return readData;
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=getReadStates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getReadStates","exports","messages","read","returnAllReadData","readData","Object","values","forEach","readState","last_read","userLastReadMsgId","msg","created_at","id"],"sourceRoot":"../../../../../src","sources":["components/MessageList/utils/getReadStates.ts"],"mappings":";;;;AAKO,IAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CACxBE,QAA6F,EAC7FC,IAA2B,EAC3BC,iBAA2B,EACxB;EACH,IAAMC,QAAgC,GAAG,CAAC,CAAC;EAE3C,IAAIF,IAAI,EAAE;IAQRG,MAAM,CAACC,MAAM,CAACJ,IAAI,CAAC,CAACK,OAAO,CAAC,UAACC,SAAS,EAAK;MACzC,IAAI,CAACA,SAAS,CAACC,SAAS,EAAE;QACxB;MACF;MAEA,IAAIC,iBAAqC;MAGzCT,QAAQ,CAACM,OAAO,CAAC,UAACI,GAAG,EAAK;QACxB,IAAIA,GAAG,CAACC,UAAU,IAAID,GAAG,CAACC,UAAU,GAAGJ,SAAS,CAACC,SAAS,EAAE;UAC1DC,iBAAiB,GAAGC,GAAG,CAACE,EAAE;UAE1B,IAAIV,iBAAiB,EAAE;YAErB,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;cAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;YACjC;YACAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;UAC/D;QACF;MACF,CAAC,CAAC;MAGF,IAAIA,iBAAiB,IAAI,CAACP,iBAAiB,EAAE;QAC3C,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;UAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;QACjC;QAEAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;MAC/D;IACF,CAAC,CAAC;EACJ;EAEA,OAAON,QAAQ;AACjB,CAAC","ignoreList":[]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { ChannelState } from 'stream-chat';
|
|
2
|
-
import { PaginatedMessageListContextValue } from '../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
3
|
-
import { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';
|
|
4
|
-
type UseLastReadDataParams = {
|
|
5
|
-
messages: PaginatedMessageListContextValue['messages'] | ThreadContextValue['threadMessages'];
|
|
6
|
-
userID: string | undefined;
|
|
7
|
-
read?: ChannelState['read'];
|
|
8
|
-
returnAllReadData?: boolean;
|
|
9
|
-
};
|
|
10
|
-
export declare const useLastReadData: (props: UseLastReadDataParams) => Record<string, number>;
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=useLastReadData.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLastReadData.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/useLastReadData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,gCAAgC,EAAE,MAAM,2EAA2E,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAInF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,gCAAgC,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC9F,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,qBAAqB,2BAY3D,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ChannelState } from 'stream-chat';
|
|
2
|
-
import type { PaginatedMessageListContextValue } from '../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
3
|
-
import type { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';
|
|
4
|
-
export declare const getReadStates: (messages: PaginatedMessageListContextValue["messages"] | ThreadContextValue["threadMessages"], read?: ChannelState["read"], returnAllReadData?: boolean) => Record<string, number>;
|
|
5
|
-
//# sourceMappingURL=getReadStates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getReadStates.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/utils/getReadStates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2EAA2E,CAAC;AAClI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAExF,eAAO,MAAM,aAAa,GACxB,UAAU,gCAAgC,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,EAC7F,OAAO,YAAY,CAAC,MAAM,CAAC,EAC3B,oBAAoB,OAAO,2BA8C5B,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
|
|
3
|
-
import type { ChannelState } from 'stream-chat';
|
|
4
|
-
|
|
5
|
-
import { PaginatedMessageListContextValue } from '../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
6
|
-
import { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';
|
|
7
|
-
|
|
8
|
-
import { getReadStates } from '../utils/getReadStates';
|
|
9
|
-
|
|
10
|
-
type UseLastReadDataParams = {
|
|
11
|
-
messages: PaginatedMessageListContextValue['messages'] | ThreadContextValue['threadMessages'];
|
|
12
|
-
userID: string | undefined;
|
|
13
|
-
read?: ChannelState['read'];
|
|
14
|
-
returnAllReadData?: boolean;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export const useLastReadData = (props: UseLastReadDataParams) => {
|
|
18
|
-
const { messages, read, returnAllReadData = true, userID } = props;
|
|
19
|
-
|
|
20
|
-
return useMemo(
|
|
21
|
-
() =>
|
|
22
|
-
getReadStates(
|
|
23
|
-
messages.filter(({ user }) => user?.id === userID),
|
|
24
|
-
read,
|
|
25
|
-
returnAllReadData,
|
|
26
|
-
),
|
|
27
|
-
[messages, read, returnAllReadData, userID],
|
|
28
|
-
);
|
|
29
|
-
};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { ChannelState } from 'stream-chat';
|
|
2
|
-
|
|
3
|
-
import type { PaginatedMessageListContextValue } from '../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
4
|
-
import type { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';
|
|
5
|
-
|
|
6
|
-
export const getReadStates = (
|
|
7
|
-
messages: PaginatedMessageListContextValue['messages'] | ThreadContextValue['threadMessages'],
|
|
8
|
-
read?: ChannelState['read'],
|
|
9
|
-
returnAllReadData?: boolean,
|
|
10
|
-
) => {
|
|
11
|
-
const readData: Record<string, number> = {};
|
|
12
|
-
|
|
13
|
-
if (read) {
|
|
14
|
-
/**
|
|
15
|
-
* Array is in reverse order so newest message is at 0,
|
|
16
|
-
* we find the index of the first message that is older
|
|
17
|
-
* than the last read and then set last read to that, or
|
|
18
|
-
* if there are no newer messages, the first message is
|
|
19
|
-
* last read message.
|
|
20
|
-
*/
|
|
21
|
-
Object.values(read).forEach((readState) => {
|
|
22
|
-
if (!readState.last_read) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
let userLastReadMsgId: string | undefined;
|
|
27
|
-
|
|
28
|
-
// loop messages sent by current user and add read data for other users in channel
|
|
29
|
-
messages.forEach((msg) => {
|
|
30
|
-
if (msg.created_at && msg.created_at < readState.last_read) {
|
|
31
|
-
userLastReadMsgId = msg.id;
|
|
32
|
-
|
|
33
|
-
if (returnAllReadData) {
|
|
34
|
-
// if true, save other user's read data for all messages they've read
|
|
35
|
-
if (!readData[userLastReadMsgId]) {
|
|
36
|
-
readData[userLastReadMsgId] = 0;
|
|
37
|
-
}
|
|
38
|
-
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
// if true, only save read data for other user's last read message
|
|
44
|
-
if (userLastReadMsgId && !returnAllReadData) {
|
|
45
|
-
if (!readData[userLastReadMsgId]) {
|
|
46
|
-
readData[userLastReadMsgId] = 0;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return readData;
|
|
55
|
-
};
|