| 29 | } |
| 30 | |
| 31 | func resolveTree(node *viewNode, scope *Scope) *viewNode { |
| 32 | if node.componentRef != nil { |
| 33 | rendered := renderComponent(node.componentRef, scope) |
| 34 | return resolveTree(rendered.viewNode(), scope) |
| 35 | } |
| 36 | for i, child := range node.children { |
| 37 | node.children[i] = resolveTree(child, scope) |
| 38 | } |
| 39 | if node.scaffold != nil { |
| 40 | if node.scaffold.top != nil { |
| 41 | node.scaffold.top = resolveTree(node.scaffold.top.viewNode(), scope) |
| 42 | } |
| 43 | if node.scaffold.bottom != nil { |
| 44 | node.scaffold.bottom = resolveTree(node.scaffold.bottom.viewNode(), scope) |
| 45 | } |
| 46 | if node.scaffold.leading != nil { |
| 47 | node.scaffold.leading = resolveTree(node.scaffold.leading.viewNode(), scope) |
| 48 | } |
| 49 | if node.scaffold.trailing != nil { |
| 50 | node.scaffold.trailing = resolveTree(node.scaffold.trailing.viewNode(), scope) |
| 51 | } |
| 52 | } |
| 53 | return node |
| 54 | } |
| 55 | |
| 56 | type TestOption func(*Scope) |
| 57 | |