@@ -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 ]);
@@ -455,6 +459,9 @@ mixin _MessageSequence {
455459 final prevMessageItem = items.last as MessageListMessageBaseItem ;
456460 assert (identical (prevMessageItem.message, prevMessage));
457461 assert (prevMessageItem.isLastInBlock);
462+ assert (prevMessageItem.isLastInFeed);
463+
464+ prevMessageItem.isLastInFeed = false ;
458465
459466 if (oneMessagePerBlock || ! haveSameRecipient (prevMessage, message)) {
460467 items.add (MessageListRecipientHeaderItem (message));
@@ -474,6 +481,7 @@ mixin _MessageSequence {
474481 assert (identical (item.message, message));
475482 assert (item.showSender == ! canShareSender);
476483 assert (item.isLastInBlock);
484+ assert (item.isLastInFeed);
477485 if (shouldSetMiddleItem) {
478486 middleItem = items.length;
479487 }
@@ -494,7 +502,7 @@ mixin _MessageSequence {
494502 shouldSetMiddleItem: index == middleMessage,
495503 prevMessage: prevMessage,
496504 buildItem: (bool canShareSender) => MessageListMessageItem (
497- message, content, showSender: ! canShareSender, isLastInBlock: true ));
505+ message, content, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
498506 }
499507
500508 /// Append to [items] based on the index-th message in [outboxMessages] .
@@ -512,7 +520,7 @@ mixin _MessageSequence {
512520 shouldSetMiddleItem: index == 0 && middleMessage == messages.length,
513521 prevMessage: prevMessage,
514522 buildItem: (bool canShareSender) => MessageListOutboxMessageItem (
515- message, showSender: ! canShareSender, isLastInBlock: true ));
523+ message, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
516524 }
517525
518526 /// Remove items associated with [outboxMessages] from [items] .
@@ -531,6 +539,7 @@ mixin _MessageSequence {
531539 if (items.isNotEmpty) {
532540 final lastItem = items.last as MessageListMessageItem ;
533541 lastItem.isLastInBlock = true ;
542+ lastItem.isLastInFeed = true ;
534543 }
535544 if (middleMessage == messages.length) middleItem = items.length;
536545 }
0 commit comments