refactor(ui): refactor stream quouted message.

Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
Sahil Kumar
2023-06-16 02:13:56 +05:30
committed by xsahil03x
parent 607cd91bcf
commit 190f267496
4 changed files with 65 additions and 66 deletions
@@ -129,8 +129,11 @@ class _MessageCardState extends State<MessageCard> {
@override
Widget build(BuildContext context) {
final onQuotedMessageTap = widget.onQuotedMessageTap;
return Card(
elevation: 0,
clipBehavior: Clip.hardEdge,
margin: EdgeInsets.symmetric(
horizontal: (widget.isFailedState ? 15.0 : 0.0) +
(widget.showUserAvatar == DisplayWidget.gone ? 0 : 4.0),
@@ -150,15 +153,23 @@ class _MessageCardState extends State<MessageCard> {
maxWidth: widthLimit ?? double.infinity,
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (widget.hasQuotedMessage)
QuotedMessage(
reverse: widget.reverse,
message: widget.message,
hasNonUrlAttachments: widget.hasNonUrlAttachments,
onQuotedMessageTap: widget.onQuotedMessageTap,
MouseRegion(
cursor: SystemMouseCursors.click,
child: InkWell(
onTap: !widget.message.quotedMessage!.isDeleted &&
onQuotedMessageTap != null
? () => onQuotedMessageTap(widget.message.quotedMessageId)
: null,
child: QuotedMessage(
reverse: widget.reverse,
message: widget.message,
hasNonUrlAttachments: widget.hasNonUrlAttachments,
),
),
),
if (widget.hasNonUrlAttachments)
ParseAttachments(
@@ -7,63 +7,41 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart';
///
/// Used in [QuotedMessageCard]. Should not be used elsewhere.
/// {@endtemplate}
class QuotedMessage extends StatefulWidget {
class QuotedMessage extends StatelessWidget {
/// {@macro quotedMessage}
const QuotedMessage({
super.key,
required this.message,
required this.reverse,
required this.hasNonUrlAttachments,
this.onQuotedMessageTap,
});
/// {@macro message}
final Message message;
/// {@macro onQuotedMessageTap}
final OnQuotedMessageTap? onQuotedMessageTap;
/// {@macro reverse}
final bool reverse;
/// {@macro hasNonUrlAttachments}
final bool hasNonUrlAttachments;
@override
State<QuotedMessage> createState() => _QuotedMessageState();
}
class _QuotedMessageState extends State<QuotedMessage> {
late StreamChatState _streamChat;
late StreamChatThemeData _streamChatTheme;
@override
void didChangeDependencies() {
super.didChangeDependencies();
_streamChatTheme = StreamChatTheme.of(context);
_streamChat = StreamChat.of(context);
}
@override
Widget build(BuildContext context) {
final isMyMessage = widget.message.user?.id == _streamChat.currentUser?.id;
final onTap = widget.message.quotedMessage?.isDeleted != true &&
widget.onQuotedMessageTap != null
? () => widget.onQuotedMessageTap!(widget.message.quotedMessageId)
: null;
final chatThemeData = _streamChatTheme;
final streamChat = StreamChat.of(context);
final chatThemeData = StreamChatTheme.of(context);
final isMyMessage = message.user?.id == streamChat.currentUser?.id;
return StreamQuotedMessageWidget(
onTap: onTap,
message: widget.message.quotedMessage!,
message: message.quotedMessage!,
messageTheme: isMyMessage
? chatThemeData.otherMessageTheme
: chatThemeData.ownMessageTheme,
reverse: widget.reverse,
reverse: reverse,
padding: EdgeInsets.only(
right: 8,
left: 8,
top: 8,
bottom: widget.hasNonUrlAttachments ? 8 : 0,
bottom: hasNonUrlAttachments ? 8 : 0,
),
);
}