Skip to content

Commit ba8301c

Browse files
committed
fix: Crash when a tr tag includes text node.
1 parent be196a8 commit ba8301c

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

example/lib/main.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,12 @@ const htmlData = """
5050
</thead>
5151
<tbody>
5252
<tr><td><b>Data</b></td><td>Data</td><td>Data</td></tr>
53-
<tr><td>Data</td><td>Data</td><td>Data</td></tr>
54-
<tr><td>Data</td><td>Data</td><td>Data</td></tr>
53+
<tr>
54+
<td>Data</td><td>Data</td><td>Data</td>
55+
</tr>
56+
<tr>
57+
<td>Data</td><td>Data</td><td>Data</td>
58+
</tr>
5559
</tbody>
5660
<tfoot>
5761
<tr><td>fData</td><td>fData</td><td>fData</td></tr>

lib/src/layout_element.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_html/html_parser.dart';
3+
import 'package:flutter_html/src/html_elements.dart';
34
import 'package:flutter_html/src/styled_element.dart';
45
import 'package:flutter_html/style.dart';
56
import 'package:html/dom.dart' as dom;
@@ -98,8 +99,11 @@ class TableRowLayoutElement extends LayoutElement {
9899
TableRow toTableRow(RenderContext context) {
99100
return TableRow(
100101
children: children.map((c) {
101-
return RichText(text: context.parser.parseTree(context, c));
102-
}).toList());
102+
if (c is StyledElement && c.name == 'td' || c.name == 'th') {
103+
return RichText(text: context.parser.parseTree(context, c));
104+
}
105+
return null;
106+
}).where((c) => c != null).toList());
103107
}
104108
}
105109

0 commit comments

Comments
 (0)