stream-chat-react-native-core 8.11.0 → 8.12.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/Channel/Channel.js +26 -17
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +3 -2
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +4 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +6 -8
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageBlocked.js +70 -0
- package/lib/commonjs/components/Message/MessageSimple/MessageBlocked.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +0 -2
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageWrapper.js +126 -0
- package/lib/commonjs/components/Message/MessageSimple/MessageWrapper.js.map +1 -0
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -3
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageFlashList.js +74 -105
- package/lib/commonjs/components/MessageList/MessageFlashList.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +77 -119
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/UnreadMessagesNotification.js +2 -2
- package/lib/commonjs/components/MessageList/UnreadMessagesNotification.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageDateSeparator.js +45 -0
- package/lib/commonjs/components/MessageList/hooks/useMessageDateSeparator.js.map +1 -0
- package/lib/commonjs/components/MessageList/hooks/useMessageGroupStyles.js +46 -0
- package/lib/commonjs/components/MessageList/hooks/useMessageGroupStyles.js.map +1 -0
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +49 -29
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +5 -14
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +22 -17
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js +1 -1
- package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/commonjs/components/index.js +33 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +3 -0
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageListItemContext/MessageListItemContext.js +29 -0
- package/lib/commonjs/contexts/messageListItemContext/MessageListItemContext.js.map +1 -0
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +6 -0
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/state-store/channel-unread-state.js +31 -0
- package/lib/commonjs/state-store/channel-unread-state.js.map +1 -0
- package/lib/commonjs/state-store/message-list-prev-next-state.js +46 -0
- package/lib/commonjs/state-store/message-list-prev-next-state.js.map +1 -0
- package/lib/commonjs/store/apis/getChannelMessages.js +7 -10
- package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
- package/lib/commonjs/utils/utils.js +4 -4
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Channel/Channel.js +26 -17
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +3 -2
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +4 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Message/Message.js +6 -8
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageBlocked.js +70 -0
- package/lib/module/components/Message/MessageSimple/MessageBlocked.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/MessageContent.js +0 -2
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageWrapper.js +126 -0
- package/lib/module/components/Message/MessageSimple/MessageWrapper.js.map +1 -0
- package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -3
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/MessageList/MessageFlashList.js +74 -105
- package/lib/module/components/MessageList/MessageFlashList.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +77 -119
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/UnreadMessagesNotification.js +2 -2
- package/lib/module/components/MessageList/UnreadMessagesNotification.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageDateSeparator.js +45 -0
- package/lib/module/components/MessageList/hooks/useMessageDateSeparator.js.map +1 -0
- package/lib/module/components/MessageList/hooks/useMessageGroupStyles.js +46 -0
- package/lib/module/components/MessageList/hooks/useMessageGroupStyles.js.map +1 -0
- package/lib/module/components/MessageList/hooks/useMessageList.js +49 -29
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js +5 -14
- package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js +22 -17
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js +1 -1
- package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
- package/lib/module/components/index.js +33 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +3 -0
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageListItemContext/MessageListItemContext.js +29 -0
- package/lib/module/contexts/messageListItemContext/MessageListItemContext.js.map +1 -0
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +6 -0
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/state-store/channel-unread-state.js +31 -0
- package/lib/module/state-store/channel-unread-state.js.map +1 -0
- package/lib/module/state-store/message-list-prev-next-state.js +46 -0
- package/lib/module/state-store/message-list-prev-next-state.js.map +1 -0
- package/lib/module/store/apis/getChannelMessages.js +7 -10
- package/lib/module/store/apis/getChannelMessages.js.map +1 -1
- package/lib/module/utils/utils.js +4 -4
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts +3 -3
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.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/useMessageListPagination.d.ts +2 -2
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
- package/lib/typescript/components/Message/Message.d.ts +1 -1
- package/lib/typescript/components/Message/Message.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageBlocked.d.ts +19 -0
- package/lib/typescript/components/Message/MessageSimple/MessageBlocked.d.ts.map +1 -0
- package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageWrapper.d.ts +7 -0
- package/lib/typescript/components/Message/MessageSimple/MessageWrapper.d.ts.map +1 -0
- 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/MessageList/MessageFlashList.d.ts +1 -1
- package/lib/typescript/components/MessageList/MessageFlashList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useMessageDateSeparator.d.ts +16 -0
- package/lib/typescript/components/MessageList/hooks/useMessageDateSeparator.d.ts.map +1 -0
- package/lib/typescript/components/MessageList/hooks/useMessageGroupStyles.d.ts +15 -0
- package/lib/typescript/components/MessageList/hooks/useMessageGroupStyles.d.ts.map +1 -0
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +8 -0
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getDateSeparators.d.ts +12 -0
- package/lib/typescript/components/MessageList/utils/getDateSeparators.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts +25 -0
- package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getLastReceivedMessage.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +3 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +10 -4
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +4 -1
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageListItemContext/MessageListItemContext.d.ts +37 -0
- package/lib/typescript/contexts/messageListItemContext/MessageListItemContext.d.ts.map +1 -0
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +11 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +6 -0
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
- package/lib/typescript/hooks/useTranslatedMessage.d.ts.map +1 -1
- package/lib/typescript/state-store/channel-unread-state.d.ts +12 -0
- package/lib/typescript/state-store/channel-unread-state.d.ts.map +1 -0
- package/lib/typescript/state-store/message-list-prev-next-state.d.ts +16 -0
- package/lib/typescript/state-store/message-list-prev-next-state.d.ts.map +1 -0
- package/lib/typescript/store/apis/getChannelMessages.d.ts.map +1 -1
- package/lib/typescript/utils/utils.d.ts +1 -2
- package/lib/typescript/utils/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/Channel/Channel.tsx +31 -16
- package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -2
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +4 -0
- package/src/components/Message/Message.tsx +6 -15
- package/src/components/Message/MessageSimple/MessageBlocked.tsx +67 -0
- package/src/components/Message/MessageSimple/MessageContent.tsx +0 -2
- package/src/components/Message/MessageSimple/MessageWrapper.tsx +147 -0
- package/src/components/Message/MessageSimple/__tests__/MessageStatus.test.js +1 -5
- package/src/components/Message/hooks/useCreateMessageContext.ts +0 -3
- package/src/components/MessageList/MessageFlashList.tsx +81 -143
- package/src/components/MessageList/MessageList.tsx +83 -165
- package/src/components/MessageList/UnreadMessagesNotification.tsx +2 -2
- package/src/components/MessageList/__tests__/MessageList.test.js +10 -8
- package/src/components/MessageList/__tests__/useMessageDateSeparator.test.ts +83 -0
- package/src/components/MessageList/hooks/useMessageDateSeparator.ts +66 -0
- package/src/components/MessageList/hooks/useMessageGroupStyles.ts +75 -0
- package/src/components/MessageList/hooks/useMessageList.ts +68 -36
- package/src/components/MessageList/utils/getDateSeparators.ts +16 -20
- package/src/components/MessageList/utils/getGroupStyles.ts +44 -33
- package/src/components/MessageList/utils/getLastReceivedMessage.ts +1 -4
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +6 -6
- package/src/components/index.ts +3 -0
- package/src/contexts/channelContext/ChannelContext.tsx +13 -4
- package/src/contexts/messageContext/MessageContext.tsx +4 -1
- package/src/contexts/messageInputContext/MessageInputContext.tsx +5 -0
- package/src/contexts/messageListItemContext/MessageListItemContext.tsx +63 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +16 -1
- package/src/contexts/themeContext/utils/theme.ts +12 -0
- package/src/state-store/channel-unread-state.ts +28 -0
- package/src/state-store/message-list-prev-next-state.ts +58 -0
- package/src/store/apis/getChannelMessages.ts +9 -12
- package/src/utils/utils.ts +9 -8
- package/src/version.json +1 -1
- package/src/components/MessageList/utils/__tests__/getDateSeparators.test.ts +0 -71
|
@@ -31,6 +31,7 @@ import type {
|
|
|
31
31
|
MessageProps,
|
|
32
32
|
} from '../../components/Message/Message';
|
|
33
33
|
import type { MessageAvatarProps } from '../../components/Message/MessageSimple/MessageAvatar';
|
|
34
|
+
import type { MessageBlockedProps } from '../../components/Message/MessageSimple/MessageBlocked';
|
|
34
35
|
import type { MessageBounceProps } from '../../components/Message/MessageSimple/MessageBounce';
|
|
35
36
|
import type { MessageContentProps } from '../../components/Message/MessageSimple/MessageContent';
|
|
36
37
|
import type { MessageDeletedProps } from '../../components/Message/MessageSimple/MessageDeleted';
|
|
@@ -55,7 +56,11 @@ import type { MessageSystemProps } from '../../components/MessageList/MessageSys
|
|
|
55
56
|
import type { ScrollToBottomButtonProps } from '../../components/MessageList/ScrollToBottomButton';
|
|
56
57
|
import { TypingIndicatorContainerProps } from '../../components/MessageList/TypingIndicatorContainer';
|
|
57
58
|
import { UnreadMessagesNotificationProps } from '../../components/MessageList/UnreadMessagesNotification';
|
|
58
|
-
import type {
|
|
59
|
+
import type {
|
|
60
|
+
getGroupStyles,
|
|
61
|
+
GroupStyle,
|
|
62
|
+
MessageGroupStylesParams,
|
|
63
|
+
} from '../../components/MessageList/utils/getGroupStyles';
|
|
59
64
|
import { MessageActionListProps } from '../../components/MessageMenu/MessageActionList';
|
|
60
65
|
import type {
|
|
61
66
|
MessageActionListItemProps,
|
|
@@ -206,6 +211,11 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
|
|
|
206
211
|
* Defaults to: [MessageAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageAvatar.tsx)
|
|
207
212
|
**/
|
|
208
213
|
MessageAvatar: React.ComponentType<MessageAvatarProps>;
|
|
214
|
+
/**
|
|
215
|
+
* UI component for MessageBlocked
|
|
216
|
+
* Defaults to: [MessageBlocked](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageBlocked.tsx)
|
|
217
|
+
*/
|
|
218
|
+
MessageBlocked: React.ComponentType<MessageBlockedProps>;
|
|
209
219
|
/**
|
|
210
220
|
* UI Component for MessageBounce
|
|
211
221
|
*/
|
|
@@ -401,7 +411,12 @@ export type MessagesContextValue = Pick<MessageContextValue, 'isMessageAIGenerat
|
|
|
401
411
|
*/
|
|
402
412
|
forceAlignMessages?: Alignment | boolean;
|
|
403
413
|
|
|
414
|
+
/**
|
|
415
|
+
* @deprecated in favor of `getMessageGroupStyle`
|
|
416
|
+
*/
|
|
404
417
|
getMessagesGroupStyles?: typeof getGroupStyles;
|
|
418
|
+
|
|
419
|
+
getMessageGroupStyle?: (params: MessageGroupStylesParams) => GroupStyle[];
|
|
405
420
|
/**
|
|
406
421
|
* Handler to access when a ban user action is invoked.
|
|
407
422
|
* @param message
|
|
@@ -655,6 +655,12 @@ export type Theme = {
|
|
|
655
655
|
};
|
|
656
656
|
messageGroupedSingleOrBottomContainer: ViewStyle;
|
|
657
657
|
messageGroupedTopContainer: ViewStyle;
|
|
658
|
+
messageBlocked: {
|
|
659
|
+
container: ViewStyle;
|
|
660
|
+
line: ViewStyle;
|
|
661
|
+
text: TextStyle;
|
|
662
|
+
textContainer: ViewStyle;
|
|
663
|
+
};
|
|
658
664
|
pinnedHeader: {
|
|
659
665
|
container: ViewStyle;
|
|
660
666
|
label: TextStyle;
|
|
@@ -1469,6 +1475,12 @@ export const defaultTheme: Theme = {
|
|
|
1469
1475
|
container: {},
|
|
1470
1476
|
roundedView: {},
|
|
1471
1477
|
},
|
|
1478
|
+
messageBlocked: {
|
|
1479
|
+
container: {},
|
|
1480
|
+
line: {},
|
|
1481
|
+
text: {},
|
|
1482
|
+
textContainer: {},
|
|
1483
|
+
},
|
|
1472
1484
|
messageGroupedSingleOrBottomContainer: {},
|
|
1473
1485
|
messageGroupedTopContainer: {},
|
|
1474
1486
|
pinnedHeader: {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { StateStore } from 'stream-chat';
|
|
2
|
+
|
|
3
|
+
import type { ChannelUnreadState as ChannelUnreadStateType } from '../types/types';
|
|
4
|
+
|
|
5
|
+
export type ChannelUnreadStateStoreType = {
|
|
6
|
+
channelUnreadState?: ChannelUnreadStateType;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const INITIAL_STATE: ChannelUnreadStateStoreType = {
|
|
10
|
+
channelUnreadState: undefined,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export class ChannelUnreadStateStore {
|
|
14
|
+
public state: StateStore<ChannelUnreadStateStoreType>;
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
this.state = new StateStore<ChannelUnreadStateStoreType>(INITIAL_STATE);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
set channelUnreadState(data: ChannelUnreadStateStoreType['channelUnreadState']) {
|
|
21
|
+
this.state.next({ channelUnreadState: data });
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get channelUnreadState() {
|
|
25
|
+
const { channelUnreadState } = this.state.getLatestValue();
|
|
26
|
+
return channelUnreadState;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { LocalMessage, StateStore } from 'stream-chat';
|
|
2
|
+
|
|
3
|
+
export type MessagePreviousAndNextMessageStoreType = {
|
|
4
|
+
messageList: Record<
|
|
5
|
+
string,
|
|
6
|
+
{
|
|
7
|
+
previousMessage: LocalMessage;
|
|
8
|
+
nextMessage: LocalMessage;
|
|
9
|
+
}
|
|
10
|
+
>;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const INITIAL_STATE: MessagePreviousAndNextMessageStoreType = {
|
|
14
|
+
messageList: {},
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export class MessagePreviousAndNextMessageStore {
|
|
18
|
+
public state: StateStore<MessagePreviousAndNextMessageStoreType>;
|
|
19
|
+
|
|
20
|
+
constructor() {
|
|
21
|
+
this.state = new StateStore<MessagePreviousAndNextMessageStoreType>(INITIAL_STATE);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// The default value of isFlashList is true as the logic in the function makes more sense when the list is not reversed.
|
|
25
|
+
public setMessageListPreviousAndNextMessage({
|
|
26
|
+
messages,
|
|
27
|
+
isFlashList = true,
|
|
28
|
+
}: {
|
|
29
|
+
messages: LocalMessage[];
|
|
30
|
+
isFlashList?: boolean;
|
|
31
|
+
}) {
|
|
32
|
+
const currentValue = this.state.getLatestValue();
|
|
33
|
+
const prevMessageList: MessagePreviousAndNextMessageStoreType['messageList'] =
|
|
34
|
+
currentValue.messageList;
|
|
35
|
+
const newMessageList: MessagePreviousAndNextMessageStoreType['messageList'] = {};
|
|
36
|
+
for (let i = 0; i < messages.length; i++) {
|
|
37
|
+
const message = messages[i];
|
|
38
|
+
const previousMessage = isFlashList ? messages[i - 1] : messages[i + 1];
|
|
39
|
+
const nextMessage = isFlashList ? messages[i + 1] : messages[i - 1];
|
|
40
|
+
|
|
41
|
+
const existing = prevMessageList[message.id];
|
|
42
|
+
|
|
43
|
+
if (
|
|
44
|
+
existing &&
|
|
45
|
+
existing.previousMessage === previousMessage &&
|
|
46
|
+
existing.nextMessage === nextMessage
|
|
47
|
+
) {
|
|
48
|
+
newMessageList[message.id] = existing;
|
|
49
|
+
} else {
|
|
50
|
+
newMessageList[message.id] = {
|
|
51
|
+
nextMessage,
|
|
52
|
+
previousMessage,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
this.state.partialNext({ messageList: newMessageList });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -4,7 +4,6 @@ import { selectMessagesForChannels } from './queries/selectMessagesForChannels';
|
|
|
4
4
|
|
|
5
5
|
import { selectReactionsForMessages } from './queries/selectReactionsForMessages';
|
|
6
6
|
|
|
7
|
-
import { isBlockedMessage } from '../../utils/utils';
|
|
8
7
|
import { mapStorableToMessage } from '../mappers/mapStorableToMessage';
|
|
9
8
|
import { createSelectQuery } from '../sqlite-utils/createSelectQuery';
|
|
10
9
|
import { SqliteClient } from '../SqliteClient';
|
|
@@ -82,17 +81,15 @@ export const getChannelMessages = async ({
|
|
|
82
81
|
cidVsMessages[m.cid] = [];
|
|
83
82
|
}
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
);
|
|
95
|
-
}
|
|
84
|
+
cidVsMessages[m.cid].push(
|
|
85
|
+
mapStorableToMessage({
|
|
86
|
+
currentUserId,
|
|
87
|
+
messageRow: m,
|
|
88
|
+
pollRow: messageIdsVsPolls[m.poll_id],
|
|
89
|
+
reactionRows: messageIdVsReactions[m.id],
|
|
90
|
+
reminderRow: messageIdsVsReminders[m.id],
|
|
91
|
+
}),
|
|
92
|
+
);
|
|
96
93
|
});
|
|
97
94
|
|
|
98
95
|
return cidVsMessages;
|
package/src/utils/utils.ts
CHANGED
|
@@ -10,7 +10,6 @@ import type {
|
|
|
10
10
|
} from 'stream-chat';
|
|
11
11
|
|
|
12
12
|
import { IconProps } from '../../src/icons/utils/base';
|
|
13
|
-
import type { TableRowJoinedUser } from '../store/types';
|
|
14
13
|
import { ValueOf } from '../types/types';
|
|
15
14
|
|
|
16
15
|
export type ReactionData = {
|
|
@@ -74,10 +73,12 @@ export const getIndicatorTypeForFileState = (
|
|
|
74
73
|
* @param message
|
|
75
74
|
* @returns boolean
|
|
76
75
|
*/
|
|
77
|
-
export const isBlockedMessage = (message: LocalMessage
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
export const isBlockedMessage = (message: LocalMessage) => {
|
|
77
|
+
return (
|
|
78
|
+
message.type === 'error' &&
|
|
79
|
+
(message.moderation_details?.action === 'MESSAGE_RESPONSE_ACTION_REMOVE' ||
|
|
80
|
+
message.moderation?.action === 'remove')
|
|
81
|
+
);
|
|
81
82
|
};
|
|
82
83
|
|
|
83
84
|
/**
|
|
@@ -86,9 +87,9 @@ export const isBlockedMessage = (message: LocalMessage | TableRowJoinedUser<'mes
|
|
|
86
87
|
* @returns boolean
|
|
87
88
|
*/
|
|
88
89
|
export const isBouncedMessage = (message: LocalMessage) =>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
message.type === 'error' &&
|
|
91
|
+
(message?.moderation_details?.action === 'MESSAGE_RESPONSE_ACTION_BOUNCE' ||
|
|
92
|
+
message?.moderation?.action === 'bounce');
|
|
92
93
|
|
|
93
94
|
/**
|
|
94
95
|
* Utility to check if the message is a edited message.
|
package/src/version.json
CHANGED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { PaginatedMessageListContextValue } from '../../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
2
|
-
import { getDateSeparators } from '../getDateSeparators';
|
|
3
|
-
|
|
4
|
-
describe('getDateSeparators', () => {
|
|
5
|
-
it('should return an empty object if no messages are passed', () => {
|
|
6
|
-
expect(getDateSeparators({ messages: [] })).toEqual({});
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
it('should return a date separator for each message in a new day', () => {
|
|
10
|
-
const firstDate = new Date('2020-01-01T00:00:00.000Z');
|
|
11
|
-
const secondDate = new Date('2020-01-02T00:00:00.000Z');
|
|
12
|
-
const messages = [
|
|
13
|
-
{
|
|
14
|
-
created_at: firstDate,
|
|
15
|
-
id: '1',
|
|
16
|
-
text: 'foo',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
created_at: secondDate,
|
|
20
|
-
id: '2',
|
|
21
|
-
text: 'bar',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
created_at: secondDate,
|
|
25
|
-
id: '3',
|
|
26
|
-
text: 'baz',
|
|
27
|
-
},
|
|
28
|
-
] as PaginatedMessageListContextValue['messages'];
|
|
29
|
-
|
|
30
|
-
expect(getDateSeparators({ messages })).toEqual({
|
|
31
|
-
1: firstDate,
|
|
32
|
-
2: secondDate,
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('should return a date separator for the visible message in a day if deleted messages are not visible to the user', () => {
|
|
37
|
-
const firstDate = new Date('2020-01-01T00:00:00.000Z');
|
|
38
|
-
const secondDate = new Date('2020-01-02T00:00:00.000Z');
|
|
39
|
-
|
|
40
|
-
const messages = [
|
|
41
|
-
{
|
|
42
|
-
created_at: firstDate,
|
|
43
|
-
id: '1',
|
|
44
|
-
text: 'foo',
|
|
45
|
-
type: 'regular',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
created_at: secondDate,
|
|
49
|
-
id: '2',
|
|
50
|
-
text: 'bar',
|
|
51
|
-
type: 'deleted',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
created_at: secondDate,
|
|
55
|
-
id: '3',
|
|
56
|
-
text: 'baz',
|
|
57
|
-
type: 'regular',
|
|
58
|
-
},
|
|
59
|
-
] as PaginatedMessageListContextValue['messages'];
|
|
60
|
-
|
|
61
|
-
expect(getDateSeparators({ deletedMessagesVisibilityType: 'never', messages })).toEqual({
|
|
62
|
-
1: firstDate,
|
|
63
|
-
3: secondDate,
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
expect(getDateSeparators({ deletedMessagesVisibilityType: 'receiver', messages })).toEqual({
|
|
67
|
-
1: firstDate,
|
|
68
|
-
3: secondDate,
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
});
|