Only scroll the chatbox not the entire window when new messages arrive

This commit is contained in:
James Ketr 2025-09-16 10:48:22 -07:00
parent a0148fe8b9
commit 77a3bf89a7

View File

@ -26,9 +26,12 @@ const LobbyChat: React.FC<LobbyChatProps> = ({ socketUrl, session, lobbyId }) =>
const [newMessage, setNewMessage] = useState<string>("");
const [isClearing, setIsClearing] = useState<boolean>(false);
const messagesEndRef = useRef<HTMLDivElement>(null);
const chatMessagesRef = useRef<HTMLDivElement>(null);
const scrollToBottom = () => {
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
if (chatMessagesRef.current) {
chatMessagesRef.current.scrollTop = chatMessagesRef.current.scrollHeight;
}
};
const { sendJsonMessage } = useWebSocket(socketUrl, {
@ -167,7 +170,7 @@ const LobbyChat: React.FC<LobbyChatProps> = ({ socketUrl, session, lobbyId }) =>
)}
</Box>
<Box className="chat-messages" sx={{ flexGrow: 1, overflowY: "auto", mb: 1 }}>
<Box className="chat-messages" sx={{ flexGrow: 1, overflowY: "auto", mb: 1 }} ref={chatMessagesRef}>
<List dense>
{messages.length === 0 ? (
<ListItem>