@@ -1073,7 +1073,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
10731073
10741074 final itemIndex = totalItems - 1 - (childIndex + bottomItems);
10751075 final data = model.items[itemIndex];
1076- final item = _buildItem (data);
1076+ final item = _buildItem (data, isLastInFeed : itemIndex == totalItems - 1 );
10771077 return item;
10781078 }));
10791079
@@ -1113,7 +1113,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
11131113
11141114 final itemIndex = topItems + childIndex;
11151115 final data = model.items[itemIndex];
1116- return _buildItem (data);
1116+ return _buildItem (data, isLastInFeed : itemIndex == totalItems - 1 );
11171117 }));
11181118
11191119 if (! ComposeBox .hasComposeBox (widget.narrow)) {
@@ -1178,7 +1178,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
11781178 }
11791179 }
11801180
1181- Widget _buildItem (MessageListItem data) {
1181+ Widget _buildItem (MessageListItem data, { required bool isLastInFeed} ) {
11821182 switch (data) {
11831183 case MessageListRecipientHeaderItem ():
11841184 final header = RecipientHeader (message: data.message, narrow: widget.narrow);
@@ -1195,13 +1195,15 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
11951195 key: ValueKey (data.message.id),
11961196 narrow: widget.narrow,
11971197 header: header,
1198- item: data);
1198+ item: data,
1199+ isLastInFeed: isLastInFeed);
11991200 case MessageListOutboxMessageItem ():
12001201 final header = RecipientHeader (message: data.message, narrow: widget.narrow);
12011202 return MessageItem (
12021203 narrow: widget.narrow,
12031204 header: header,
1204- item: data);
1205+ item: data,
1206+ isLastInFeed: isLastInFeed);
12051207 }
12061208 }
12071209}
@@ -1527,11 +1529,13 @@ class MessageItem extends StatelessWidget {
15271529 required this .narrow,
15281530 required this .item,
15291531 required this .header,
1532+ required this .isLastInFeed,
15301533 });
15311534
15321535 final Narrow narrow;
15331536 final MessageListMessageBaseItem item;
15341537 final Widget header;
1538+ final bool isLastInFeed;
15351539
15361540 @override
15371541 Widget build (BuildContext context) {
@@ -1547,9 +1551,10 @@ class MessageItem extends StatelessWidget {
15471551 item: item),
15481552 MessageListOutboxMessageItem () => OutboxMessageWithPossibleSender (item: item),
15491553 },
1550- // TODO refine this padding; discussion:
1551- // https://github.com/zulip/zulip-flutter/pull/1453#discussion_r2106526985
1552- if (item.isLastInBlock) const SizedBox (height: 11 ),
1554+ if (isLastInFeed)
1555+ const SizedBox (height: 5 )
1556+ else if (item.isLastInBlock)
1557+ const SizedBox (height: 11 ),
15531558 ]));
15541559 if (item case MessageListMessageItem (: final message)) {
15551560 child = _UnreadMarker (
0 commit comments