Skip to content

Commit cad8417

Browse files
committed
fix: rely on processedMessageList for calculations
1 parent 9f9cfae commit cad8417

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

package/src/components/MessageList/__tests__/useMessageDateSeparator.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ describe('useMessageDateSeparator', () => {
2828
text: 'Hello World',
2929
},
3030
] as LocalMessage[];
31-
messageListPreviousAndNextMessageStore.setMessageListPreviousAndNextMessage(messages);
31+
messageListPreviousAndNextMessageStore.setMessageListPreviousAndNextMessage({ messages });
3232
});
3333

3434
it('should return undefined if no message is passed', () => {
@@ -70,7 +70,7 @@ describe('useMessageDateSeparator', () => {
7070
},
7171
] as LocalMessage[];
7272
const messageListPreviousAndNextMessageStore = new MessagePreviousAndNextMessageStore();
73-
messageListPreviousAndNextMessageStore.setMessageListPreviousAndNextMessage(messages);
73+
messageListPreviousAndNextMessageStore.setMessageListPreviousAndNextMessage({ messages });
7474
const { result: resultOfFirstMessage } = renderHook(() =>
7575
useMessageDateSeparator({ message: messages[0], messageListPreviousAndNextMessageStore }),
7676
);

package/src/components/MessageList/hooks/useMessageList.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export const shouldIncludeMessageInList = (
6262
};
6363

6464
export const useMessageList = (params: UseMessageListParams) => {
65-
const { noGroupByUser, threadList, isLiveStreaming, isFlashList } = params;
65+
const { noGroupByUser, threadList, isLiveStreaming, isFlashList = false } = params;
6666
const { client } = useChatContext();
6767
const { hideDateSeparators, maxTimeBetweenGroupedMessages } = useChannelContext();
6868
const { deletedMessagesVisibilityType, getMessagesGroupStyles = getGroupStyles } =
@@ -95,10 +95,10 @@ export const useMessageList = (params: UseMessageListParams) => {
9595
}, [messageList, deletedMessagesVisibilityType, client.userID, isFlashList]);
9696

9797
useEffect(() => {
98-
messageListPreviousAndNextMessageStore.setMessageListPreviousAndNextMessage(
99-
processedMessageList,
98+
messageListPreviousAndNextMessageStore.setMessageListPreviousAndNextMessage({
10099
isFlashList,
101-
);
100+
messages: processedMessageList,
101+
});
102102
}, [processedMessageList, messageListPreviousAndNextMessageStore, isFlashList]);
103103

104104
/**

package/src/state-store/message-list-prev-next-state.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,14 @@ export class MessagePreviousAndNextMessageStore {
2121
this.state = new StateStore<MessagePreviousAndNextMessageStoreType>(INITIAL_STATE);
2222
}
2323

24-
public setMessageListPreviousAndNextMessage(messages: LocalMessage[], isFlashList?: boolean) {
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+
}) {
2532
const currentValue = this.state.getLatestValue();
2633
const prevMessageList: MessagePreviousAndNextMessageStoreType['messageList'] =
2734
currentValue.messageList;

0 commit comments

Comments
 (0)