diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart
index 8837f3bf7..bf88c01b3 100644
--- a/lib/pages/chat/events/html_message.dart
+++ b/lib/pages/chat/events/html_message.dart
@@ -1,4 +1,3 @@
-import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:collection/collection.dart';
@@ -285,16 +284,31 @@ class HtmlMessage extends StatelessWidget {
: AppConfig.gold.withAlpha(60);
}
- return TextSpan(
- recognizer: TapGestureRecognizer()
- ..onTap = onClick != null && token != null
- ? () => onClick?.call(token)
- : null,
- text: node.innerHtml,
- style: AppConfig.messageTextStyle(
- pangeaMessageEvent!.event,
- textColor,
- ).merge(TextStyle(backgroundColor: backgroundColor)),
+ return WidgetSpan(
+ child: MouseRegion(
+ cursor: SystemMouseCursors.click,
+ child: GestureDetector(
+ onTap: onClick != null && token != null
+ ? () => onClick?.call(token)
+ : null,
+ child: RichText(
+ text: TextSpan(
+ children: [
+ LinkifySpan(
+ text: node.innerHtml,
+ style: AppConfig.messageTextStyle(
+ pangeaMessageEvent!.event,
+ textColor,
+ ).merge(TextStyle(backgroundColor: backgroundColor)),
+ linkStyle: linkStyle,
+ onOpen: (url) =>
+ UrlLauncher(context, url.url).launchUrl(),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
);
// Pangea#
case 'br':