make chat follow new messages when scrolled to bottom

Fixes #106
This commit is contained in:
Henry Hiles 2026-10-02 19:57:48 -04:00
commit 41bdb04b72
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -94,6 +94,27 @@ final class ChatScroll({
);
}, [controllerData, anchorId.value]);
final lastRowId = split.live.lastOrNull;
final previousLastRowId = useRef<int?>(null);
useEffect(() {
final previous = previousLastRowId.value;
previousLastRowId.value = lastRowId;
if (previous == null || lastRowId == null || previous == lastRowId) {
return null;
}
if (!atBottom.value || contextualEvent.value != null) return null;
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!scrollController.hasClients) return;
scrollController.jumpTo(scrollController.position.minScrollExtent);
});
return null;
}, [lastRowId]);
useEffect(
() {
const loadThreshold = 500.0;