Skip to content

Commit 0658a90

Browse files
chore: bot reviews
1 parent 9ee70d1 commit 0658a90

5 files changed

Lines changed: 18 additions & 15 deletions

File tree

apps/meteor/client/views/room/MessageList/MessageList.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ type MessageListProps = {
4343
handleDateScroll: (topMessage: IMessage | undefined) => void;
4444
};
4545

46-
const lastViewportSize = 0;
46+
let lastViewportSize = 0;
4747

4848
export const MessageList = function MessageList({
4949
rid,
@@ -139,6 +139,7 @@ export const MessageList = function MessageList({
139139
}
140140
// If new messages arrive and is at bottom, scroll to keep at bottom
141141
if (isAtBottom.current && lastViewportSize !== handle?.viewportSize) {
142+
lastViewportSize = handle?.viewportSize ?? 0;
142143
handle?.scrollToIndex(lastItemIndex + 1, {
143144
align: 'end',
144145
});
@@ -232,6 +233,9 @@ export const MessageList = function MessageList({
232233

233234
if (showUnreadDivider) {
234235
unreadMarkIndex.current = index;
236+
} else {
237+
// Manually unsets the unread mark index when the divider is not visible to avoid stale state
238+
unreadMarkIndex.current = null;
235239
}
236240

237241
return (

apps/meteor/client/views/room/MessageList/hooks/useTryToJumpToMessage.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import type { WindowVirtualizerHandle } from 'virtua';
88
import { RoomHistoryManager } from '../../../../../app/ui-utils/client';
99
import { messagesQueryKeys } from '../../../../lib/queryKeys';
1010
import { mapMessageFromApi } from '../../../../lib/utils/mapMessageFromApi';
11+
import { setMessageJumpQueryStringParameter } from '../../../../lib/utils/setMessageJumpQueryStringParameter';
1112
import { clearHighlightMessage, setHighlightMessage } from '../providers/messageHighlightSubscription';
1213

1314
type UseTryToJumpToMessageProps = {
@@ -84,12 +85,7 @@ const useTryToJumpToMessage = ({ rid, virtualizerRef, isJumpingToMessage, messag
8485
isJumpingToMessage.current = false;
8586
}, 500);
8687

87-
router.navigate(
88-
{
89-
pathname: router.getLocationPathname(),
90-
},
91-
{ replace: true },
92-
);
88+
setMessageJumpQueryStringParameter(null);
9389
}, [messageJumpParam, virtualizerRef, isJumpingToMessage, rid, messages, router, message]);
9490
};
9591

apps/meteor/client/views/room/body/hooks/useStoreScrollPosition.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,15 @@ type UseStoreScrollPositionProps = {
1313
export function useStoreScrollPosition({ rid, isAtBottom, virtualizerRef }: UseStoreScrollPositionProps) {
1414
return useDebouncedCallback(
1515
() => {
16+
const scroll = virtualizerRef.current?.scrollOffset;
17+
18+
if (scroll == null) {
19+
return;
20+
}
21+
1622
const store = RoomManager.getStore(rid);
17-
store?.update({ scroll: virtualizerRef.current?.scrollOffset ?? 0, atBottom: isAtBottom.current });
23+
24+
store?.update({ scroll, atBottom: isAtBottom.current });
1825
},
1926
100,
2027
[rid, isAtBottom, virtualizerRef],

apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import type { VirtualizerHandle } from 'virtua';
1212
import { VList } from 'virtua';
1313

1414
import { ThreadMessageItem } from './ThreadMessageItem';
15+
import { setMessageJumpQueryStringParameter } from '../../../../../lib/utils/setMessageJumpQueryStringParameter';
1516
import { BubbleDate } from '../../../BubbleDate';
1617
import { isMessageNewDay } from '../../../MessageList/lib/isMessageNewDay';
1718
import MessageListProvider from '../../../MessageList/providers/MessageListProvider';
@@ -123,12 +124,7 @@ const ThreadMessageList = ({ mainMessage }: ThreadMessageListProps): ReactElemen
123124
const t1 = setTimeout(() => {
124125
clearHighlightMessage();
125126
}, 2000);
126-
router.navigate(
127-
{
128-
pathname: router.getLocationPathname(),
129-
},
130-
{ replace: true },
131-
);
127+
setMessageJumpQueryStringParameter(null);
132128
return () => {
133129
clearTimeout(t1);
134130
};

apps/meteor/client/views/room/hooks/useDateScroll.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ export const useDateScroll = (margin = 8): useDateScrollReturn => {
100100
undefined,
101101
{
102102
position: 'absolute',
103-
to: `${margin}px`,
103+
top: `${margin}px`,
104104
left: ' 50%',
105105
translate: '-50%',
106106
zIndex: 11,

0 commit comments

Comments
 (0)