Skip to content

Commit ce49d97

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 fd30b62 commit ce49d97

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
@@ -968,25 +968,32 @@ class MessageItem extends StatelessWidget {
968968
this.trailingWhitespace,
969969
});
970970

971-
final MessageListMessageItem item;
971+
final MessageListMessageBaseItem item;
972972
final Widget header;
973973
final double? trailingWhitespace;
974974

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

0 commit comments

Comments
 (0)