From bcb085c03528262c5f4ccb24e63008b413abc4c1 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sat, 3 Oct 2026 20:35:44 -0400 Subject: [PATCH] scroll chat by composer height change delta slightly evil but works --- lib/widgets/room_chat/room_chat.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/widgets/room_chat/room_chat.dart b/lib/widgets/room_chat/room_chat.dart index 0da22fc..2d89bd9 100644 --- a/lib/widgets/room_chat/room_chat.dart +++ b/lib/widgets/room_chat/room_chat.dart @@ -99,6 +99,24 @@ final class const RoomChat({ }, ); + final lastComposerHeight = useRef(composerSize.value); + + useEffect(() { + final delta = composerSize.value - lastComposerHeight.value; + lastComposerHeight.value = composerSize.value; + + if (delta != 0) { + WidgetsBinding.instance.addPostFrameCallback((_) { + final controller = scroll.scrollController; + if (!controller.hasClients) return; + + controller.jumpTo(controller.position.pixels - delta); + }); + } + + return null; + }, [composerSize.value]); + final composerNode = useFocusNode( onKeyEvent: (_, event) { if (event is KeyDownEvent && event.logicalKey == .escape) {