UNPKG

@saber2pr/react

Version:

react in Typescript.

64 lines (63 loc) 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* * @Author: saber2pr * @Date: 2019-12-06 17:11:57 * @Last Modified by: saber2pr * @Last Modified time: 2019-12-07 16:09:22 */ var ReactTypes_1 = require("../shared/ReactTypes"); var ReactIs_1 = require("../react-is/ReactIs"); var testStackSize_1 = require("../shared/testStackSize"); function getHostSiblingFiber(fiber) { var node = fiber; siblings: while (true) { testStackSize_1.TestStackSize("getHostSiblingFiber"); while (!node.sibling) { if (!node.return || ReactIs_1.isHostParentFiber(node.return)) { return null; } node = node.return; } node.sibling.return = node.return; node = node.sibling; while (!ReactIs_1.isHostChildFiber(node)) { if (node.effectType === ReactTypes_1.EffectType.Place) { continue siblings; } if (!node.child) { continue siblings; } else { node.child.return = node; node = node.child; } } if (!(node.effectType === ReactTypes_1.EffectType.Place)) { return node; } } } exports.getHostSiblingFiber = getHostSiblingFiber; function getHostParentFiber(fiber) { var parent = fiber.return; while (parent) { testStackSize_1.TestStackSize("getHostParentFiber"); if (ReactIs_1.isHostParentFiber(parent)) { return parent; } parent = parent.return; } } exports.getHostParentFiber = getHostParentFiber; function getHostChildFiber(fiber) { var child = fiber.child; while (child) { testStackSize_1.TestStackSize("getHostChildFiber"); if (ReactIs_1.isHostChildFiber(child)) { return child; } child = child.child; } } exports.getHostChildFiber = getHostChildFiber;