@@ -44,10 +44,12 @@ sealed class MessageListMessageBaseItem extends MessageListItem {
4444 ZulipMessageContent get content;
4545 bool showSender;
4646 bool isLastInBlock;
47+ bool isLastInFeed;
4748
4849 MessageListMessageBaseItem ({
4950 required this .showSender,
5051 required this .isLastInBlock,
52+ required this .isLastInFeed,
5153 });
5254}
5355
@@ -63,6 +65,7 @@ class MessageListMessageItem extends MessageListMessageBaseItem {
6365 this .content, {
6466 required super .showSender,
6567 required super .isLastInBlock,
68+ required super .isLastInFeed,
6669 });
6770}
6871
@@ -77,6 +80,7 @@ class MessageListOutboxMessageItem extends MessageListMessageBaseItem {
7780 this .message, {
7881 required super .showSender,
7982 required super .isLastInBlock,
83+ required super .isLastInFeed,
8084 }) : content = ZulipContent (nodes: [
8185 ParagraphNode (links: null , nodes: [TextNode (message.contentMarkdown)]),
8286 ]);
@@ -443,6 +447,9 @@ mixin _MessageSequence {
443447 final prevMessageItem = items.last as MessageListMessageBaseItem ;
444448 assert (identical (prevMessageItem.message, prevMessage));
445449 assert (prevMessageItem.isLastInBlock);
450+ assert (prevMessageItem.isLastInFeed);
451+
452+ prevMessageItem.isLastInFeed = false ;
446453
447454 if (! haveSameRecipient (prevMessage, message)) {
448455 items.add (MessageListRecipientHeaderItem (message));
@@ -462,6 +469,7 @@ mixin _MessageSequence {
462469 assert (identical (item.message, message));
463470 assert (item.showSender == ! canShareSender);
464471 assert (item.isLastInBlock);
472+ assert (item.isLastInFeed);
465473 if (shouldSetMiddleItem) {
466474 middleItem = items.length;
467475 }
@@ -482,7 +490,7 @@ mixin _MessageSequence {
482490 shouldSetMiddleItem: index == middleMessage,
483491 prevMessage: prevMessage,
484492 buildItem: (bool canShareSender) => MessageListMessageItem (
485- message, content, showSender: ! canShareSender, isLastInBlock: true ));
493+ message, content, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
486494 }
487495
488496 /// Append to [items] based on the index-th message in [outboxMessages] .
@@ -500,7 +508,7 @@ mixin _MessageSequence {
500508 shouldSetMiddleItem: index == 0 && middleMessage == messages.length,
501509 prevMessage: prevMessage,
502510 buildItem: (bool canShareSender) => MessageListOutboxMessageItem (
503- message, showSender: ! canShareSender, isLastInBlock: true ));
511+ message, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
504512 }
505513
506514 /// Remove items associated with [outboxMessages] from [items] .
@@ -519,6 +527,7 @@ mixin _MessageSequence {
519527 if (items.isNotEmpty) {
520528 final lastItem = items.last as MessageListMessageItem ;
521529 lastItem.isLastInBlock = true ;
530+ lastItem.isLastInFeed = true ;
522531 }
523532 if (middleMessage == messages.length) middleItem = items.length;
524533 }
0 commit comments