From 67006dd67806798bf5c6e6e4d7da0fe76bf6ab74 Mon Sep 17 00:00:00 2001 From: kanat <> Date: Thu, 10 Aug 2023 12:44:12 -0700 Subject: [PATCH] allow override reactions tap --- .../lib/src/message_widget/message_widget.dart | 12 +++++++++++- .../stream_chat_flutter/lib/src/utils/typedefs.dart | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/stream_chat_flutter/lib/src/message_widget/message_widget.dart b/packages/stream_chat_flutter/lib/src/message_widget/message_widget.dart index f62adf84..5240c1d8 100644 --- a/packages/stream_chat_flutter/lib/src/message_widget/message_widget.dart +++ b/packages/stream_chat_flutter/lib/src/message_widget/message_widget.dart @@ -55,6 +55,7 @@ class StreamMessageWidget extends StatefulWidget { this.attachmentBorderRadiusGeometry, this.onMentionTap, this.onMessageTap, + this.onReactionsTap, bool? showReactionPicker, @Deprecated('Use `showReactionPicker` instead') bool showReactionPickerIndicator = true, @@ -563,6 +564,9 @@ class StreamMessageWidget extends StatefulWidget { /// {@macro onMessageTap} final void Function(Message)? onMessageTap; + /// {@macro onReactionsTap} + final OnReactionsTap? onReactionsTap; + /// {@template customActions} /// List of custom actions shown on message long tap /// {@endtemplate} @@ -657,6 +661,7 @@ class StreamMessageWidget extends StatefulWidget { bool? translateUserAvatar, OnQuotedMessageTap? onQuotedMessageTap, void Function(Message)? onMessageTap, + OnReactionsTap? onReactionsTap, List? customActions, void Function(Message message, Attachment attachment)? onAttachmentTap, Widget Function(BuildContext, User)? userAvatarBuilder, @@ -746,6 +751,7 @@ class StreamMessageWidget extends StatefulWidget { translateUserAvatar: translateUserAvatar ?? this.translateUserAvatar, onQuotedMessageTap: onQuotedMessageTap ?? this.onQuotedMessageTap, onMessageTap: onMessageTap ?? this.onMessageTap, + onReactionsTap: onReactionsTap ?? this.onReactionsTap, customActions: customActions ?? this.customActions, onAttachmentTap: onAttachmentTap ?? this.onAttachmentTap, userAvatarBuilder: userAvatarBuilder ?? this.userAvatarBuilder, @@ -986,7 +992,11 @@ class _StreamMessageWidgetState extends State showPinHighlight: widget.showPinHighlight, showReactionPickerTail: widget.showReactionPickerTail, showReactions: showReactions, - onReactionsTap: () => _showMessageReactionsModal(context), + onReactionsTap: () { + widget.onReactionsTap != null ? widget.onReactionsTap!( + widget.message + ) : _showMessageReactionsModal(context); + }, showUserAvatar: widget.showUserAvatar, streamChat: _streamChat, translateUserAvatar: widget.translateUserAvatar, diff --git a/packages/stream_chat_flutter/lib/src/utils/typedefs.dart b/packages/stream_chat_flutter/lib/src/utils/typedefs.dart index 64f18e1a..f278de0c 100644 --- a/packages/stream_chat_flutter/lib/src/utils/typedefs.dart +++ b/packages/stream_chat_flutter/lib/src/utils/typedefs.dart @@ -230,6 +230,11 @@ typedef OnQuotedMessageTap = void Function(String?); /// {@endtemplate} typedef OnMessageTap = void Function(Message); +/// {@template onReactionsTap} +/// The action to perform when a message's reactions are tapped. +/// {@endtemplate} +typedef OnReactionsTap = void Function(Message); + /// {@template messageSearchItemTapCallback} /// The action to perform when tapping or clicking on a user in a // ignore: deprecated_member_use_from_same_package