@@ -41,6 +41,7 @@ import {
41
41
MessageStatusTypes ,
42
42
} from '../../utils/utils' ;
43
43
import type { Thumbnail } from '../Attachment/utils/buildGallery/types' ;
44
+ import { getReadState } from '../MessageList/utils/getReadState' ;
44
45
45
46
export type TouchableEmitter =
46
47
| 'fileAttachment'
@@ -136,7 +137,7 @@ export type MessagePropsWithContext = Pick<
136
137
Partial <
137
138
Omit < MessageContextValue , 'groupStyles' | 'handleReaction' | 'message' | 'isMessageAIGenerated' >
138
139
> &
139
- Pick < MessageContextValue , 'groupStyles' | 'message' | 'isMessageAIGenerated' | 'readBy' > &
140
+ Pick < MessageContextValue , 'groupStyles' | 'message' | 'isMessageAIGenerated' > &
140
141
Pick <
141
142
MessagesContextValue ,
142
143
| 'sendReaction'
@@ -247,7 +248,6 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
247
248
onThreadSelect,
248
249
openThread,
249
250
preventPress,
250
- readBy,
251
251
removeMessage,
252
252
retrySendMessage,
253
253
selectReaction,
@@ -263,6 +263,7 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
263
263
threadList = false ,
264
264
updateMessage,
265
265
} = props ;
266
+ const { read } = useChannelContext ( ) ;
266
267
const isMessageAIGenerated = messagesContext . isMessageAIGenerated ;
267
268
const isAIGenerated = useMemo (
268
269
( ) => isMessageAIGenerated ( message ) ,
@@ -277,6 +278,7 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
277
278
screenPadding,
278
279
} ,
279
280
} = useTheme ( ) ;
281
+ const readBy = useMemo ( ( ) => getReadState ( message , read ) , [ message , read ] ) ;
280
282
281
283
const showMessageOverlay = async ( showMessageReactions = false , selectedReaction ?: string ) => {
282
284
await dismissKeyboard ( ) ;
@@ -756,7 +758,6 @@ const areEqual = (prevProps: MessagePropsWithContext, nextProps: MessagePropsWit
756
758
members : prevMembers ,
757
759
message : prevMessage ,
758
760
messagesContext : prevMessagesContext ,
759
- readBy : prevReadBy ,
760
761
showUnreadUnderlay : prevShowUnreadUnderlay ,
761
762
t : prevT ,
762
763
} = prevProps ;
@@ -769,7 +770,6 @@ const areEqual = (prevProps: MessagePropsWithContext, nextProps: MessagePropsWit
769
770
members : nextMembers ,
770
771
message : nextMessage ,
771
772
messagesContext : nextMessagesContext ,
772
- readBy : nextReadBy ,
773
773
showUnreadUnderlay : nextShowUnreadUnderlay ,
774
774
t : nextT ,
775
775
} = nextProps ;
@@ -885,11 +885,6 @@ const areEqual = (prevProps: MessagePropsWithContext, nextProps: MessagePropsWit
885
885
return false ;
886
886
}
887
887
888
- const readByEqual = prevReadBy === nextReadBy ;
889
- if ( ! readByEqual ) {
890
- return false ;
891
- }
892
-
893
888
const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay ;
894
889
if ( ! showUnreadUnderlayEqual ) {
895
890
return false ;
@@ -919,9 +914,9 @@ const areEqual = (prevProps: MessagePropsWithContext, nextProps: MessagePropsWit
919
914
const MemoizedMessage = React . memo ( MessageWithContext , areEqual ) as typeof MessageWithContext ;
920
915
921
916
export type MessageProps = Partial <
922
- Omit < MessagePropsWithContext , 'groupStyles' | 'handleReaction' | 'message' | 'readBy' >
917
+ Omit < MessagePropsWithContext , 'groupStyles' | 'handleReaction' | 'message' >
923
918
> &
924
- Pick < MessagePropsWithContext , 'groupStyles' | 'message' | 'readBy' > ;
919
+ Pick < MessagePropsWithContext , 'groupStyles' | 'message' > ;
925
920
926
921
/**
927
922
* Message - A high level component which implements all the logic required for a message.
0 commit comments