* Find the deepest React component completely containing the root of the * passed-in instance (for use when entire React trees are nested within each * other). If React trees are not nested, returns null.
(inst)
| 5794 | * other). If React trees are not nested, returns null. |
| 5795 | */ |
| 5796 | function findRootContainerNode(inst) { |
| 5797 | // TODO: It may be a good idea to cache this to prevent unnecessary DOM |
| 5798 | // traversal, but caching is difficult to do correctly without using a |
| 5799 | // mutation observer to listen for all DOM changes. |
| 5800 | while (inst['return']) { |
| 5801 | inst = inst['return']; |
| 5802 | } |
| 5803 | if (inst.tag !== HostRoot) { |
| 5804 | // This can happen if we're in a detached tree. |
| 5805 | return null; |
| 5806 | } |
| 5807 | return inst.stateNode.containerInfo; |
| 5808 | } |
| 5809 | |
| 5810 | // Used to store ancestor hierarchy in top level callback |
| 5811 | function getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) { |