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 8a79ca21..df05ba5e 100644 --- a/packages/stream_chat_flutter/lib/src/attachment/url_attachment.dart +++ b/packages/stream_chat_flutter/lib/src/attachment/url_attachment.dart @@ -14,6 +14,7 @@ class UrlAttachment extends StatelessWidget { horizontal: 16, vertical: 8, ), + this.onLinkTap, }) : super(key: key); /// Attachment to be displayed @@ -28,13 +29,20 @@ class UrlAttachment extends StatelessWidget { /// [MessageThemeData] for showing image title final MessageThemeData 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 63f4e805..3ffca84a 100644 --- a/packages/stream_chat_flutter/lib/src/message_widget.dart +++ b/packages/stream_chat_flutter/lib/src/message_widget.dart @@ -1013,6 +1013,7 @@ class _MessageWidgetState extends State hostDisplayName: hostDisplayName, textPadding: widget.textPadding, messageTheme: widget.messageTheme, + onLinkTap: widget.onLinkTap, ); }