From 3698bff086241584c28dc19916c109b8eaf74235 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Wed, 22 Apr 2020 10:35:34 +0200 Subject: [PATCH] extract deleted message widget --- example/lib/main.dart | 1 + lib/src/deleted_message.dart | 35 +++++++++++++++++++++++++++++++++++ lib/src/message_widget.dart | 21 ++++----------------- lib/src/reply_indicator.dart | 1 + 4 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 lib/src/deleted_message.dart diff --git a/example/lib/main.dart b/example/lib/main.dart index d7b905d0..7de283d0 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -137,6 +137,7 @@ class ChannelPage extends StatelessWidget { child: Stack( children: [ MessageListView( + showOtherMessageUsername: true, showVideoFullScreen: false, threadBuilder: (_, parentMessage) { return ThreadPage( diff --git a/lib/src/deleted_message.dart b/lib/src/deleted_message.dart new file mode 100644 index 00000000..6b63176d --- /dev/null +++ b/lib/src/deleted_message.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; +import 'package:stream_chat_flutter/src/stream_chat_theme.dart'; + +class DeletedMessage extends StatelessWidget { + const DeletedMessage({ + Key key, + @required this.messageTheme, + this.alignment, + }) : super(key: key); + + final MessageTheme messageTheme; + final Alignment alignment; + + @override + Widget build(BuildContext context) { + return Align( + alignment: alignment, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 14, + vertical: 14, + ), + child: Text( + 'This message was deleted...', + style: messageTheme.messageText.copyWith( + fontStyle: FontStyle.italic, + color: Theme.of(context).brightness == Brightness.dark + ? Colors.white + : Colors.black, + ), + ), + ), + ); + } +} diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index 1e0fd789..7df86b4b 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -21,6 +21,7 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:video_player/video_player.dart'; +import 'deleted_message.dart'; import 'stream_chat.dart'; /// ![screenshot](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/master/screenshots/message_widget.png) @@ -184,24 +185,10 @@ class _MessageWidgetState extends State _isMyMessage = _messageUserId == _currentUserId; } - Align _buildDeletedMessage(Alignment alignment) { - return Align( + Widget _buildDeletedMessage(Alignment alignment) { + return DeletedMessage( + messageTheme: _messageTheme, alignment: alignment, - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 14, - vertical: 14, - ), - child: Text( - 'This message was deleted...', - style: _messageTheme.messageText.copyWith( - fontStyle: FontStyle.italic, - color: Theme.of(context).brightness == Brightness.dark - ? Colors.white - : Colors.black, - ), - ), - ), ); } diff --git a/lib/src/reply_indicator.dart b/lib/src/reply_indicator.dart index 6ed5f83a..e7a8f3c5 100644 --- a/lib/src/reply_indicator.dart +++ b/lib/src/reply_indicator.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; +/// A reply button indicator class ReplyIndicator extends StatelessWidget { final Message message; final VoidCallback onTap;