add ability to specify onLinkTap for url attachments
This commit is contained in:
@@ -14,6 +14,7 @@ class UrlAttachment extends StatelessWidget {
|
|||||||
horizontal: 16,
|
horizontal: 16,
|
||||||
vertical: 8,
|
vertical: 8,
|
||||||
),
|
),
|
||||||
|
this.onLinkTap,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
/// Attachment to be displayed
|
/// Attachment to be displayed
|
||||||
@@ -28,13 +29,20 @@ class UrlAttachment extends StatelessWidget {
|
|||||||
/// [MessageThemeData] for showing image title
|
/// [MessageThemeData] for showing image title
|
||||||
final MessageThemeData messageTheme;
|
final MessageThemeData messageTheme;
|
||||||
|
|
||||||
|
/// The function called when tapping on a link
|
||||||
|
final void Function(String)? onLinkTap;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final chatThemeData = StreamChatTheme.of(context);
|
final chatThemeData = StreamChatTheme.of(context);
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final titleLink = urlAttachment.titleLink;
|
final titleLink = urlAttachment.titleLink;
|
||||||
if (titleLink != null) launchURL(context, titleLink);
|
if (titleLink != null) {
|
||||||
|
onLinkTap != null
|
||||||
|
? onLinkTap!(titleLink)
|
||||||
|
: launchURL(context, titleLink);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
|
|||||||
@@ -1013,6 +1013,7 @@ class _MessageWidgetState extends State<MessageWidget>
|
|||||||
hostDisplayName: hostDisplayName,
|
hostDisplayName: hostDisplayName,
|
||||||
textPadding: widget.textPadding,
|
textPadding: widget.textPadding,
|
||||||
messageTheme: widget.messageTheme,
|
messageTheme: widget.messageTheme,
|
||||||
|
onLinkTap: widget.onLinkTap,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user