Skip to content

Commit 023d1b2

Browse files
committed
fix: optimize MessageWrapper
1 parent 653d4ef commit 023d1b2

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

package/src/components/Message/MessageSimple/MessageWrapper.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ import { MessagePreviousAndNextMessageStoreType } from '../../../state-store/mes
1818

1919
const channelUnreadStateSelector = (state: ChannelUnreadStateStoreType) => ({
2020
first_unread_message_id: state.channelUnreadState?.first_unread_message_id,
21-
last_read: state.channelUnreadState?.last_read,
2221
last_read_message_id: state.channelUnreadState?.last_read_message_id,
22+
last_read_timestamp: state.channelUnreadState?.last_read?.getTime(),
2323
unread_messages: state.channelUnreadState?.unread_messages,
2424
});
2525

2626
export type MessageWrapperProps = {
2727
message: LocalMessage;
2828
};
2929

30-
export const MessageWrapper = (props: MessageWrapperProps) => {
30+
export const MessageWrapper = React.memo((props: MessageWrapperProps) => {
3131
const { message } = props;
3232
const { client } = useChatContext();
3333
const {
@@ -78,7 +78,7 @@ export const MessageWrapper = (props: MessageWrapperProps) => {
7878
noGroupByUser,
7979
});
8080

81-
const { first_unread_message_id, last_read, last_read_message_id, unread_messages } =
81+
const { first_unread_message_id, last_read_timestamp, last_read_message_id, unread_messages } =
8282
useStateStore(channelUnreadStateStore.state, channelUnreadStateSelector);
8383
const {
8484
theme: {
@@ -91,10 +91,9 @@ export const MessageWrapper = (props: MessageWrapperProps) => {
9191
}
9292

9393
const createdAtTimestamp = message.created_at && new Date(message.created_at).getTime();
94-
const lastReadTimestamp = last_read?.getTime();
9594
const isLastReadMessage =
9695
last_read_message_id === message.id ||
97-
(!unread_messages && createdAtTimestamp === lastReadTimestamp);
96+
(!unread_messages && createdAtTimestamp === last_read_timestamp);
9897

9998
const showUnreadSeparator =
10099
isLastReadMessage &&
@@ -145,4 +144,4 @@ export const MessageWrapper = (props: MessageWrapperProps) => {
145144
{showUnreadUnderlay && <InlineUnreadIndicator />}
146145
</View>
147146
);
148-
};
147+
});

0 commit comments

Comments
 (0)