nodeToWidget method

Widget nodeToWidget(
  1. dynamic node
)

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);
  }
}