diff --git a/src/views/Conversations/Online/MessagesList.jsx b/src/views/Conversations/Online/MessagesList.jsx index de2779f..00e140c 100644 --- a/src/views/Conversations/Online/MessagesList.jsx +++ b/src/views/Conversations/Online/MessagesList.jsx @@ -21,10 +21,16 @@ const MessagesList = ({ messages, handlePreview, reference, longListLoading, get return () => ''; }, [focusMsg]) - + const [previousScrollHeight, setPreviousScrollHeight] = useState(0); const scrollToBottom = (force = false) => { if (reference.current && (shouldScrollBottom || force)) { reference.current.scrollTop = reference.current.scrollHeight; + } else if (shouldScrollBottom === false) { + requestAnimationFrame(() => { + if (reference.current) { + reference.current.scrollTop = reference.current.scrollHeight - previousScrollHeight + } + }) } }; @@ -39,6 +45,7 @@ const MessagesList = ({ messages, handlePreview, reference, longListLoading, get useEffect(scrollToBottom, [messages]); const onLoadMore = async () => { + setPreviousScrollHeight(reference.current?.scrollHeight || 0); await getMoreMessages(); }; // eslint-disable-next-line react/display-name @@ -51,8 +58,8 @@ const MessagesList = ({ messages, handlePreview, reference, longListLoading, get )); return ( -