scroll chat by composer height change delta
slightly evil but works
This commit is contained in:
parent
eae79d943d
commit
bcb085c035
1 changed files with 18 additions and 0 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue