diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart
index ae67c5813..712a5f699 100644
--- a/lib/pages/chat/events/html_message.dart
+++ b/lib/pages/chat/events/html_message.dart
@@ -156,6 +156,7 @@ class HtmlMessage extends StatelessWidget {
SpoilerExtension(textColor: textColor),
const ImageExtension(),
FontColorExtension(),
+ FallbackTextExtension(fontSize: fontSize),
],
onLinkTap: (url, _, element) => UrlLauncher(
context,
@@ -172,6 +173,8 @@ class HtmlMessage extends StatelessWidget {
);
}
+ static const Set fallbackTextTags = {'tg-forward'};
+
/// Keep in sync with: https://spec.matrix.org/v1.6/client-server-api/#mroommessage-msgtypes
static const Set allowedHtmlTags = {
'font',
@@ -217,7 +220,7 @@ class HtmlMessage extends StatelessWidget {
'rp',
'rt',
// Workaround for https://github.com/krille-chan/fluffychat/issues/507
- 'tg-forward',
+ ...fallbackTextTags,
};
}
@@ -410,6 +413,22 @@ class CodeExtension extends HtmlExtension {
);
}
+class FallbackTextExtension extends HtmlExtension {
+ final double fontSize;
+
+ FallbackTextExtension({required this.fontSize});
+ @override
+ Set get supportedTags => HtmlMessage.fallbackTextTags;
+
+ @override
+ InlineSpan build(ExtensionContext context) => TextSpan(
+ text: context.element?.text ?? '',
+ style: TextStyle(
+ fontSize: fontSize,
+ ),
+ );
+}
+
class RoomPillExtension extends HtmlExtension {
final Room room;
final BuildContext context;