|
|
|
@ -44,12 +44,12 @@ function shouldCollapseMessages(messages: ChatMessage[], index: number): boolean
@@ -44,12 +44,12 @@ function shouldCollapseMessages(messages: ChatMessage[], index: number): boolean
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!lastMessage.timestamp || !message.timestamp) { |
|
|
|
|
if (!lastMessage?.timestamp || !message.timestamp) { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const maxTimestampDelta = 1000 * 60 * 2; // 2 minutes
|
|
|
|
|
const lastTimestamp = new Date(lastMessage.timestamp).getTime(); |
|
|
|
|
const lastTimestamp = new Date(lastMessage?.timestamp).getTime(); |
|
|
|
|
const thisTimestamp = new Date(message.timestamp).getTime(); |
|
|
|
|
if (thisTimestamp - lastTimestamp > maxTimestampDelta) { |
|
|
|
|
return false; |
|
|
|
@ -185,6 +185,7 @@ export const ChatContainer: FC<ChatContainerProps> = ({
@@ -185,6 +185,7 @@ export const ChatContainer: FC<ChatContainerProps> = ({
|
|
|
|
|
itemContent={(index, message) => getViewForMessage(index, message)} |
|
|
|
|
followOutput="auto" |
|
|
|
|
alignToBottom |
|
|
|
|
atBottomThreshold={70} |
|
|
|
|
atBottomStateChange={bottom => setAtBottom(bottom)} |
|
|
|
|
/> |
|
|
|
|
{!atBottom && <ScrollToBotBtn chatContainerRef={chatContainerRef} messages={messages} />} |
|
|
|
|