feat: integrate scroll to latest behavior setting into unread info calculation

This commit is contained in:
2026-04-26 19:10:06 +10:00
parent ef0aa2a847
commit 52abffb4c9

View File

@@ -85,7 +85,7 @@ import {
reactionOrEditEvent, reactionOrEditEvent,
} from '../../utils/room'; } from '../../utils/room';
import { useSetting } from '../../state/hooks/settings'; import { useSetting } from '../../state/hooks/settings';
import { MessageLayout, settingsAtom } from '../../state/settings'; import { MessageLayout, ScrollToLatestBehavior, settingsAtom } from '../../state/settings';
import { useMatrixEventRenderer } from '../../hooks/useMatrixEventRenderer'; import { useMatrixEventRenderer } from '../../hooks/useMatrixEventRenderer';
import { Reactions, Message, Event, EncryptedContent } from './message'; import { Reactions, Message, Event, EncryptedContent } from './message';
import { useMemberEventParser } from '../../hooks/useMemberEventParser'; import { useMemberEventParser } from '../../hooks/useMemberEventParser';
@@ -474,6 +474,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli
const [hour24Clock] = useSetting(settingsAtom, 'hour24Clock'); const [hour24Clock] = useSetting(settingsAtom, 'hour24Clock');
const [dateFormatString] = useSetting(settingsAtom, 'dateFormatString'); const [dateFormatString] = useSetting(settingsAtom, 'dateFormatString');
const [scrollToLatestBehavior] = useSetting(settingsAtom, 'scrollToLatestBehavior');
// Track consecutive call member events for collapsing // Track consecutive call member events for collapsing
const pendingCallEventsRef = useRef<CallEventInfo[]>([]); const pendingCallEventsRef = useRef<CallEventInfo[]>([]);
@@ -516,7 +517,9 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli
const imagePackRooms: Room[] = useImagePackRooms(room.roomId, roomToParents); const imagePackRooms: Room[] = useImagePackRooms(room.roomId, roomToParents);
const [unreadInfo, setUnreadInfo] = useState(() => getRoomUnreadInfo(room, true)); const [unreadInfo, setUnreadInfo] = useState(() =>
getRoomUnreadInfo(room, scrollToLatestBehavior !== ScrollToLatestBehavior.Always)
);
const readUptoEventIdRef = useRef<string>(); const readUptoEventIdRef = useRef<string>();
if (unreadInfo) { if (unreadInfo) {
readUptoEventIdRef.current = unreadInfo.readUptoEventId; readUptoEventIdRef.current = unreadInfo.readUptoEventId;