From 26393402d8c3684d78a49fed99c5d27cf1e0ff66 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Fri, 29 Oct 2021 12:22:05 +0200 Subject: [PATCH] fix(ui): fix positioned list view null check --- .../src/positioned_list.dart | 2 +- .../stream_chat_flutter/lib/src/message_list_view.dart | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart index c2c2a278..2ce9adb5 100644 --- a/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart +++ b/packages/stream_chat_flutter/lib/scrollable_positioned_list/src/positioned_list.dart @@ -326,7 +326,7 @@ class _PositionedListState extends State { final box = element.renderObject as RenderBox?; viewport ??= RenderAbstractViewport.of(box) as RenderViewport?; if (viewport == null || box == null) { - continue; + break; } final key = element.widget.key as IndexedKey; if (widget.scrollDirection == Axis.vertical) { diff --git a/packages/stream_chat_flutter/lib/src/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view.dart index 47b47785..5424a1c2 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -399,8 +399,11 @@ class _MessageListViewState extends State { final first = _itemPositionListener.itemPositions.value.first; final diff = newMessagesListLength - _messageListLength!; if (diff > 0) { - initialIndex = first.index + diff; - initialAlignment = first.itemLeadingEdge; + if (messages[0].user?.id != + streamChannel!.channel.client.state.currentUser?.id) { + initialIndex = first.index + diff; + initialAlignment = first.itemLeadingEdge; + } } } } @@ -1259,8 +1262,9 @@ class _MessageListViewState extends State { event.message!.user!.id == streamChannel!.channel.client.state.currentUser!.id) { WidgetsBinding.instance!.addPostFrameCallback((_) { - _scrollController?.jumpTo( + _scrollController?.scrollTo( index: 0, + duration: const Duration(seconds: 1), ); }); }