diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 98ea1160..fe8d6cd1 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -10,6 +10,12 @@ - Mentions overlay now doesn't overflow when there is not enough height available - Updated `stream_chat_flutter_core` dependency to [`3.5.1`](https://pub.dev/packages/stream_chat_flutter_core/changelog). + +✅ Added + +- `onLinkTap` for `MessageWidget` can now be passed down to `UrlAttachment`. + + ## 3.5.0 🐞 Fixed diff --git a/packages/stream_chat_flutter/lib/src/attachment/url_attachment.dart b/packages/stream_chat_flutter/lib/src/attachment/url_attachment.dart index 160b87da..25cfb5ba 100644 --- a/packages/stream_chat_flutter/lib/src/attachment/url_attachment.dart +++ b/packages/stream_chat_flutter/lib/src/attachment/url_attachment.dart @@ -20,6 +20,7 @@ class StreamUrlAttachment extends StatelessWidget { horizontal: 16, vertical: 8, ), + this.onLinkTap, }) : super(key: key); /// Attachment to be displayed @@ -34,13 +35,20 @@ class StreamUrlAttachment extends StatelessWidget { /// [StreamMessageThemeData] for showing image title final StreamMessageThemeData messageTheme; + /// The function called when tapping on a link + final void Function(String)? onLinkTap; + @override Widget build(BuildContext context) { final chatThemeData = StreamChatTheme.of(context); return GestureDetector( onTap: () { final titleLink = urlAttachment.titleLink; - if (titleLink != null) launchURL(context, titleLink); + if (titleLink != null) { + onLinkTap != null + ? onLinkTap!(titleLink) + : launchURL(context, titleLink); + } }, child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, diff --git a/packages/stream_chat_flutter/lib/src/message_widget.dart b/packages/stream_chat_flutter/lib/src/message_widget.dart index 22a7ef18..05bff7ba 100644 --- a/packages/stream_chat_flutter/lib/src/message_widget.dart +++ b/packages/stream_chat_flutter/lib/src/message_widget.dart @@ -1019,6 +1019,7 @@ class _StreamMessageWidgetState extends State hostDisplayName: hostDisplayName, textPadding: widget.textPadding, messageTheme: widget.messageTheme, + onLinkTap: widget.onLinkTap, ); }