Skip to content

Commit 6119b7f

Browse files
committed
feat: Maintain Scroll Position When Closing a Thread RocketChat#972
1 parent 578f008 commit 6119b7f

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

packages/react/src/views/ChatHeader/ChatHeader.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,20 @@ const ChatHeader = ({
105105

106106
const closeThread = useMessageStore((state) => state.closeThread);
107107

108+
const handleCloseThread = useCallback(() => {
109+
const threadMessageId = threadMainMessage?._id;
110+
closeThread();
111+
setTimeout(() => {
112+
const element = document.getElementById(`ec-message-body-${threadMessageId}`);
113+
if (element) {
114+
element.scrollIntoView({
115+
behavior: 'instant',
116+
block: 'start',
117+
});
118+
}
119+
}, 300);
120+
}, [closeThread, threadMainMessage]);
121+
108122
const setShowMembers = useMemberStore((state) => state.setShowMembers);
109123
const setShowSearch = useSearchMessageStore((state) => state.setShowSearch);
110124
const setShowPinned = usePinnedMessageStore((state) => state.setShowPinned);
@@ -430,7 +444,7 @@ const ChatHeader = ({
430444
{isThreadOpen && (
431445
<DynamicHeader
432446
title={threadMainMessage}
433-
handleClose={closeThread}
447+
handleClose={handleCloseThread}
434448
iconName="arrow-back"
435449
/>
436450
)}

0 commit comments

Comments
 (0)