Skip to content

Commit 11ea578

Browse files
committed
msglist [nfc]: Handle MessageListMessageBaseItem with MessageItem
This will make MessageItem compatible with other future subclasses of MessageBase, in particular OutboxMessage, which do not need unread markers.
1 parent fe572e4 commit 11ea578

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

lib/widgets/message_list.dart

+17-10
Original file line numberDiff line numberDiff line change
@@ -969,25 +969,32 @@ class MessageItem extends StatelessWidget {
969969
this.trailingWhitespace,
970970
});
971971

972-
final MessageListMessageItem item;
972+
final MessageListMessageBaseItem item;
973973
final Widget header;
974974
final double? trailingWhitespace;
975975

976976
@override
977977
Widget build(BuildContext context) {
978-
final message = item.message;
979978
final messageListTheme = MessageListTheme.of(context);
979+
980+
final item = this.item;
981+
Widget child = ColoredBox(
982+
color: messageListTheme.bgMessageRegular,
983+
child: Column(children: [
984+
switch (item) {
985+
MessageListMessageItem() => MessageWithPossibleSender(item: item),
986+
},
987+
if (trailingWhitespace != null && item.isLastInBlock) SizedBox(height: trailingWhitespace!),
988+
]));
989+
if (item case MessageListMessageItem(:final message)) {
990+
child = _UnreadMarker(
991+
isRead: message.flags.contains(MessageFlag.read),
992+
child: child);
993+
}
980994
return StickyHeaderItem(
981995
allowOverflow: !item.isLastInBlock,
982996
header: header,
983-
child: _UnreadMarker(
984-
isRead: message.flags.contains(MessageFlag.read),
985-
child: ColoredBox(
986-
color: messageListTheme.bgMessageRegular,
987-
child: Column(children: [
988-
MessageWithPossibleSender(item: item),
989-
if (trailingWhitespace != null && item.isLastInBlock) SizedBox(height: trailingWhitespace!),
990-
]))));
997+
child: child);
991998
}
992999
}
9931000

0 commit comments

Comments
 (0)