add deleted message in preview

This commit is contained in:
Salvatore Giordano
2020-02-27 10:47:08 +01:00
parent f93430b11d
commit d2fe921ed9
+26 -7
View File
@@ -33,14 +33,18 @@ class ChannelPreview extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
_buildDate(context, channel.lastMessageAt),
_buildDate(context),
],
),
);
}
Text _buildDate(BuildContext context, DateTime lastMessageAt) {
lastMessageAt = lastMessageAt.toLocal();
Widget _buildDate(BuildContext context) {
return StreamBuilder<DateTime>(
stream: channel.lastMessageAtStream,
initialData: channel.lastMessageAt,
builder: (context, snapshot) {
final lastMessageAt = snapshot.data.toLocal();
String stringDate;
final now = DateTime.now();
@@ -60,12 +64,14 @@ class ChannelPreview extends StatelessWidget {
stringDate,
style: Theme.of(context).textTheme.caption,
);
},
);
}
Widget _buildSubtitle() {
return StreamBuilder<List<User>>(
stream: channel.state.typingEventsStream,
initialData: [],
initialData: channel.state.typingEvents,
builder: (context, snapshot) {
final typings = snapshot.data;
final opacity = channel.state.unreadCount > .0 ? 1.0 : 0.5;
@@ -76,12 +82,20 @@ class ChannelPreview extends StatelessWidget {
}
Widget _buildLastMessage(BuildContext context, double opacity) {
final lastMessage =
channel.state.messages.isNotEmpty ? channel.state.messages.last : null;
return StreamBuilder<List<Message>>(
stream: channel.state.messagesStream,
initialData: channel.state.messages,
builder: (context, snapshot) {
final messages = snapshot.data;
final lastMessage = messages.isNotEmpty ? messages.last : null;
if (lastMessage == null) {
return SizedBox();
}
String text;
if (lastMessage.type == 'deleted') {
text = 'This message was deleted.';
} else {
final prefix = lastMessage.attachments
.map((e) {
if (e.type == 'image') {
@@ -94,14 +108,19 @@ class ChannelPreview extends StatelessWidget {
.where((e) => e != null)
.join(' ');
text = '$prefix ${lastMessage.text ?? ''}';
}
return Text(
'$prefix ${lastMessage.text ?? ''}',
text,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: Theme.of(context).textTheme.caption.copyWith(
color: Colors.black.withOpacity(opacity),
),
);
},
);
}
Text _buildTypings(List<User> typings, BuildContext context, double opacity) {