react-native-touch-tracker
Version:
tracks all touches in react native and has utilities to create outside click functionality
33 lines • 1.24 kB
JavaScript
;
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
exports.__esModule = true;
exports.isNodeDescendantOf = exports.isReactFiberComponentType = exports.getNodeIdsDeep = void 0;
/* eslint-disable no-underscore-dangle */
function getNodeIdsDeep(reactNode) {
return __spreadArrays([
reactNode._nativeTag
], reactNode._children.map(function (child) {
if (typeof child === "number") {
return child;
}
return getNodeIdsDeep(child);
})).flat();
}
exports.getNodeIdsDeep = getNodeIdsDeep;
function isReactFiberComponentType(obj) {
var castedObj = obj;
return "_nativeTag" in castedObj && "_children" in castedObj;
}
exports.isReactFiberComponentType = isReactFiberComponentType;
function isNodeDescendantOf(node, ofNode) {
var nodes = getNodeIdsDeep(ofNode);
return nodes.includes(node._nativeTag);
}
exports.isNodeDescendantOf = isNodeDescendantOf;
//# sourceMappingURL=utils.js.map