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;