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