(node: LayoutNode)
| 73 | * @returns The updated node and the node that was added. |
| 74 | */ |
| 75 | export function addIntermediateNode(node: LayoutNode): LayoutNode { |
| 76 | let intermediateNode: LayoutNode; |
| 77 | |
| 78 | if (node.data) { |
| 79 | intermediateNode = newLayoutNode(reverseFlexDirection(node.flexDirection), undefined, undefined, node.data); |
| 80 | node.children = [intermediateNode]; |
| 81 | node.data = undefined; |
| 82 | } else { |
| 83 | const intermediateNodeInner = newLayoutNode(node.flexDirection, undefined, node.children); |
| 84 | intermediateNode = newLayoutNode(reverseFlexDirection(node.flexDirection), undefined, [intermediateNodeInner]); |
| 85 | node.children = [intermediateNode]; |
| 86 | } |
| 87 | const intermediateNodeId = intermediateNode.id; |
| 88 | intermediateNode.id = node.id; |
| 89 | node.id = intermediateNodeId; |
| 90 | return intermediateNode; |
| 91 | } |
| 92 | |
| 93 | /** |
| 94 | * Attempts to remove the specified node from its parent. |
no test coverage detected