diff --git a/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx b/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx index bb1a4632..8eb4bb67 100644 --- a/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx +++ b/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx @@ -28,6 +28,13 @@ const virtListStyles: React.CSSProperties = { const dynamicListStyle: React.CSSProperties = {}; // TODO +function findMessageIndexWithId( + messages: ChatMessage[], + messageId: string +): number { + return messages.findIndex((m) => m._id === messageId); +} + interface VirtualizedMessageListProps { messages: ChatMessage[]; } @@ -68,7 +75,7 @@ export const VirtualizedMessageList: React.FC = }; const renderRow = ({ data, itemId, style }: any) => { - const index = props.messages.findIndex((m) => m._id === itemId); // TODO: 这里是因为mattermost的动态列表传的id因此只能这边再用id找回,可以看看是否可以优化 + const index = findMessageIndexWithId(props.messages, itemId); // TODO: 这里是因为mattermost的动态列表传的id因此只能这边再用id找回,可以看看是否可以优化 if (index === -1) { return
; } @@ -82,7 +89,7 @@ export const VirtualizedMessageList: React.FC = // 当不是第一条数据时 // 进行时间合并 - const prevMessage = data[index - 1]; + const prevMessage = props.messages[index - 1]; if ( !shouldShowMessageTime( new Date(prevMessage.createdAt ?? ''),