nodeToWidget method
nodeToWidget handles converting a node into a Widget, as well as handling any custom logic needed to accommodate different node types
Implementation
Widget nodeToWidget(dynamic node) {
if (Helpers.isText(node)) {
return Text.rich(TextSpan(text: _processInlineNode(node)));
} else if (Helpers.isParagraph(node) || Helpers.isHeader(node)) {
// TODO: Headers don't appear to set their size properly
return singletonRenderers.renderNode[node['nodeType']]!(
node,
(nodes) => List<TextSpan>.from(
nodes.map(
(node) => _processInlineNode(node),
),
),
);
} else {
Next nextNode = (nodes) => nodeListToWidget(nodes);
if (node['nodeType'] == null || singletonRenderers.renderNode[node['nodeType']] == null) {
// TODO: Figure what to return when passed an unrecognized node.
return Container();
}
return singletonRenderers.renderNode[node['nodeType']]!(node, nextNode);
}
}