@@ -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
]);
@@ -443,6 +447,9 @@ mixin _MessageSequence {
443
447
final prevMessageItem = items.last as MessageListMessageBaseItem ;
444
448
assert (identical (prevMessageItem.message, prevMessage));
445
449
assert (prevMessageItem.isLastInBlock);
450
+ assert (prevMessageItem.isLastInFeed);
451
+
452
+ prevMessageItem.isLastInFeed = false ;
446
453
447
454
if (! haveSameRecipient (prevMessage, message)) {
448
455
items.add (MessageListRecipientHeaderItem (message));
@@ -462,6 +469,7 @@ mixin _MessageSequence {
462
469
assert (identical (item.message, message));
463
470
assert (item.showSender == ! canShareSender);
464
471
assert (item.isLastInBlock);
472
+ assert (item.isLastInFeed);
465
473
if (shouldSetMiddleItem) {
466
474
middleItem = items.length;
467
475
}
@@ -482,7 +490,7 @@ mixin _MessageSequence {
482
490
shouldSetMiddleItem: index == middleMessage,
483
491
prevMessage: prevMessage,
484
492
buildItem: (bool canShareSender) => MessageListMessageItem (
485
- message, content, showSender: ! canShareSender, isLastInBlock: true ));
493
+ message, content, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
486
494
}
487
495
488
496
/// Append to [items] based on the index-th message in [outboxMessages] .
@@ -500,7 +508,7 @@ mixin _MessageSequence {
500
508
shouldSetMiddleItem: index == 0 && middleMessage == messages.length,
501
509
prevMessage: prevMessage,
502
510
buildItem: (bool canShareSender) => MessageListOutboxMessageItem (
503
- message, showSender: ! canShareSender, isLastInBlock: true ));
511
+ message, showSender: ! canShareSender, isLastInBlock: true , isLastInFeed : true ));
504
512
}
505
513
506
514
/// Remove items associated with [outboxMessages] from [items] .
@@ -519,6 +527,7 @@ mixin _MessageSequence {
519
527
if (items.isNotEmpty) {
520
528
final lastItem = items.last as MessageListMessageItem ;
521
529
lastItem.isLastInBlock = true ;
530
+ lastItem.isLastInFeed = true ;
522
531
}
523
532
if (middleMessage == messages.length) middleItem = items.length;
524
533
}
0 commit comments