scroll chat by composer height change delta

slightly evil but works
This commit is contained in:
Henry Hiles 2026-10-03 20:35:44 -04:00
commit bcb085c035
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -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( final composerNode = useFocusNode(
onKeyEvent: (_, event) { onKeyEvent: (_, event) {
if (event is KeyDownEvent && event.logicalKey == .escape) { if (event is KeyDownEvent && event.logicalKey == .escape) {