createDomNodes function

List<Node> createDomNodes(
  1. Morphic node, {
  2. Component? componentOwner,
  3. Map<Morphic, Component> owners = const {},
})

Creates one or more DOM nodes from a resolved Morphic.

For FragmentMorphic, expands into one node per child recursively. For all other types, returns a single-element list.

Use this whenever iterating children that may contain fragments.

Implementation

List<Node> createDomNodes(
  Morphic node, {
  Component? componentOwner,
  Map<Morphic, Component> owners = const {},
}) {
  if (node is FragmentMorphic) {
    final nodes = <Node>[];
    for (final child in node.children) {
      final childOwner = owners[child];
      nodes.addAll(
        createDomNodes(child, componentOwner: childOwner, owners: owners),
      );
    }
    return nodes;
  }

  return [createDom(node, componentOwner: componentOwner, owners: owners)];
}