Skip to content

Commit 4ba7914

Browse files
committed
fix: cannot auto focus when message update
1 parent 65c906c commit 4ba7914

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/components/Chatbot/MessageList.tsx

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
import { Box } from '@mui/material'
2-
import { memo } from 'react'
2+
import { memo, useEffect, useRef } from 'react'
33

44
const MessageList = memo(({ messages }: { messages: Message[] }) => {
5+
const lastMessageRef = useRef<HTMLDivElement | null>(null)
6+
7+
useEffect(() => {
8+
if (lastMessageRef.current) {
9+
lastMessageRef.current.scrollIntoView({ behavior: 'smooth' })
10+
}
11+
}, [messages])
12+
513
return (
614
<Box
715
sx={{
@@ -13,9 +21,10 @@ const MessageList = memo(({ messages }: { messages: Message[] }) => {
1321
gap: 2,
1422
}}
1523
>
16-
{messages.map(({ id, text, sender, timestamp }) => (
24+
{messages.map(({ id, text, sender, timestamp }, index) => (
1725
<Box
1826
key={id}
27+
ref={index === messages.length - 1 ? lastMessageRef : null}
1928
sx={{
2029
alignSelf: sender === 'user' ? 'flex-end' : 'flex-start',
2130
maxWidth: '70%',

0 commit comments

Comments
 (0)