@@ -44,10 +44,12 @@ sealed class MessageListMessageBaseItem extends MessageListItem {
44
44
ZulipMessageContent get content;
45
45
bool showSender;
46
46
bool isLastInBlock;
47
+ bool isLastInFeed;
47
48
48
49
MessageListMessageBaseItem ({
49
50
required this .showSender,
50
51
required this .isLastInBlock,
52
+ required this .isLastInFeed,
51
53
});
52
54
}
53
55
@@ -63,6 +65,7 @@ class MessageListMessageItem extends MessageListMessageBaseItem {
63
65
this .content, {
64
66
required super .showSender,
65
67
required super .isLastInBlock,
68
+ required super .isLastInFeed,
66
69
});
67
70
}
68
71
@@ -77,6 +80,7 @@ class MessageListOutboxMessageItem extends MessageListMessageBaseItem {
77
80
this .message, {
78
81
required super .showSender,
79
82
required super .isLastInBlock,
83
+ required super .isLastInFeed,
80
84
}) : content = ZulipContent (nodes: [
81
85
ParagraphNode (links: null , nodes: [TextNode (message.contentMarkdown)]),
82
86
]);
@@ -455,6 +459,9 @@ mixin _MessageSequence {
455
459
final prevMessageItem = items.last as MessageListMessageBaseItem ;
456
460
assert (identical (prevMessageItem.message, prevMessage));
457
461
assert (prevMessageItem.isLastInBlock);
462
+ assert (prevMessageItem.isLastInFeed);
463
+
464
+ prevMessageItem.isLastInFeed = false ;
458
465
459
466
if (oneMessagePerBlock || ! haveSameRecipient (prevMessage, message)) {
460
467
items.add (MessageListRecipientHeaderItem (message));
@@ -474,6 +481,7 @@ mixin _MessageSequence {
474
481
assert (identical (item.message, message));
475
482
assert (item.showSender == ! canShareSender);
476
483
assert (item.isLastInBlock);
484
+ assert (item.isLastInFeed);
477
485
if (shouldSetMiddleItem) {
478
486
middleItem = items.length;
479
487
}
@@ -494,7 +502,7 @@ mixin _MessageSequence {
494
502
shouldSetMiddleItem: index == middleMessage,
495
503
prevMessage: prevMessage,
496
504
buildItem: (bool canShareSender) => MessageListMessageItem (
497
- message, content, showSender: ! canShareSender, isLastInBlock: true ));
505
+ message, content, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
498
506
}
499
507
500
508
/// Append to [items] based on the index-th message in [outboxMessages] .
@@ -512,7 +520,7 @@ mixin _MessageSequence {
512
520
shouldSetMiddleItem: index == 0 && middleMessage == messages.length,
513
521
prevMessage: prevMessage,
514
522
buildItem: (bool canShareSender) => MessageListOutboxMessageItem (
515
- message, showSender: ! canShareSender, isLastInBlock: true ));
523
+ message, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
516
524
}
517
525
518
526
/// Remove items associated with [outboxMessages] from [items] .
@@ -531,6 +539,7 @@ mixin _MessageSequence {
531
539
if (items.isNotEmpty) {
532
540
final lastItem = items.last as MessageListMessageItem ;
533
541
lastItem.isLastInBlock = true ;
542
+ lastItem.isLastInFeed = true ;
534
543
}
535
544
if (middleMessage == messages.length) middleItem = items.length;
536
545
}
0 commit comments