diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart
index f6cb99003..51defb5f5 100644
--- a/lib/pages/chat/events/html_message.dart
+++ b/lib/pages/chat/events/html_message.dart
@@ -156,6 +156,11 @@ class HtmlMessage extends StatelessWidget {
// We must not render elements nested more than 100 elements deep:
if (depth >= 100) return const TextSpan();
+ if (node is dom.Element &&
+ ignoredHtmlTags.contains(node.localName?.toLowerCase())) {
+ return const TextSpan();
+ }
+
// This is a text node or not permitted node, so we render it as text:
if (node is! dom.Element || !allowedHtmlTags.contains(node.localName)) {
var text = node.text ?? '';
@@ -170,8 +175,6 @@ class HtmlMessage extends StatelessWidget {
);
}
- if (ignoredHtmlTags.contains(node.localName)) return const TextSpan();
-
switch (node.localName) {
case 'br':
return const TextSpan(text: '\n');
@@ -260,13 +263,15 @@ class HtmlMessage extends StatelessWidget {
child: Text.rich(
TextSpan(
children: [
- if (node.parent?.localName == 'ul')
- const TextSpan(text: '• '),
- if (node.parent?.localName == 'ol')
- TextSpan(
- text:
- '${(node.parent?.nodes.whereType().toList().indexOf(node) ?? 0) + (int.tryParse(node.parent?.attributes['start'] ?? '1') ?? 1)}. ',
- ),
+ if (!isCheckbox) ...[
+ if (node.parent?.localName == 'ul')
+ const TextSpan(text: '• '),
+ if (node.parent?.localName == 'ol')
+ TextSpan(
+ text:
+ '${(node.parent?.nodes.whereType().toList().indexOf(node) ?? 0) + (int.tryParse(node.parent?.attributes['start'] ?? '1') ?? 1)}. ',
+ ),
+ ],
if (node.className == 'task-list-item')
WidgetSpan(
child: Padding(