Skip to content

Commit 6bb726a

Browse files
committed
katex [nfc]: Factor out _KatexNodeList widget
This deduplicates the logic for the particular way that a list of KaTeX nodes get combined into a single widget.
1 parent 31942c3 commit 6bb726a

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

lib/widgets/content.dart

+19-14
Original file line numberDiff line numberDiff line change
@@ -838,13 +838,7 @@ class _Katex extends StatelessWidget {
838838

839839
@override
840840
Widget build(BuildContext context) {
841-
Widget widget = Text.rich(TextSpan(
842-
children: List.unmodifiable(nodes.map((e) {
843-
return WidgetSpan(
844-
alignment: PlaceholderAlignment.baseline,
845-
baseline: TextBaseline.alphabetic,
846-
child: _KatexSpan(e));
847-
}))));
841+
Widget widget = _KatexNodeList(nodes: nodes);
848842

849843
if (!inline) {
850844
widget = Center(
@@ -862,6 +856,23 @@ class _Katex extends StatelessWidget {
862856
}
863857
}
864858

859+
class _KatexNodeList extends StatelessWidget {
860+
const _KatexNodeList({required this.nodes});
861+
862+
final List<KatexNode> nodes;
863+
864+
@override
865+
Widget build(BuildContext context) {
866+
return Text.rich(TextSpan(
867+
children: List.unmodifiable(nodes.map((e) {
868+
return WidgetSpan(
869+
alignment: PlaceholderAlignment.baseline,
870+
baseline: TextBaseline.alphabetic,
871+
child: _KatexSpan(e));
872+
}))));
873+
}
874+
}
875+
865876
class _KatexSpan extends StatelessWidget {
866877
const _KatexSpan(this.span);
867878

@@ -875,13 +886,7 @@ class _KatexSpan extends StatelessWidget {
875886
if (span.text != null) {
876887
widget = Text(span.text!);
877888
} else if (span.nodes != null && span.nodes!.isNotEmpty) {
878-
widget = Text.rich(TextSpan(
879-
children: List.unmodifiable(span.nodes!.map((e) {
880-
return WidgetSpan(
881-
alignment: PlaceholderAlignment.baseline,
882-
baseline: TextBaseline.alphabetic,
883-
child: _KatexSpan(e));
884-
}))));
889+
widget = _KatexNodeList(nodes: span.nodes!);
885890
}
886891

887892
final styles = span.styles;

0 commit comments

Comments
 (0)