UNPKG

rn-pendo-sdk

Version:

Pendo Mobile React Native SDK

1 lines 2.26 kB
Object.defineProperty(exports,"__esModule",{value:true});exports.traverseOnComponent=traverseOnComponent;var _fiberTypes=require("./fiber-types");var _iosTraverse=require("./iosTraverse");var _iosTraverseFabric=require("./iosTraverseFabric");var _nativeParams=require("./nativeParams");var _pendoLogger=require("./pendoLogger");var _pendoNode=require("./pendoNode");var _pendoTypes=require("./pendoTypes");var _traverseOptions=require("./traverseOptions");function traverseOnComponent(options){var result=new _nativeParams.NativeParams();if(!options.reactComponent){result.error='traverseOnComponent: Missing react component';return result;}var rootFiberNode=_fiberTypes.TagFinder.fiberNodeFromComponent(options.reactComponent);if(!rootFiberNode){result.error='traverseOnComponent: Missing parent fiberNode';return result;}var _set=new Set();var traverseObject=new _traverseOptions.TraverseObject();_set.add(rootFiberNode);while(_set.size!==0){var node=_set.values().next().value;if(!node){continue;}_fiberTypes.TagFinder.LogFiberNode(node,options);_set.delete(node);if(node.child){_set.add(node.child);}if(node.sibling){_set.add(node.sibling);}if(_fiberTypes.TagFinder.isFabricEnabled){(0,_iosTraverseFabric.traverseOniOSFabric)(node,traverseObject,options);}else{(0,_iosTraverse.traverseOniOS)(node,traverseObject,options);}}result.navigationBarTag=traverseObject.navigationBarTag;result.tabBarTag=traverseObject.tabBarTag;result.bottomBarTag=traverseObject.bottomBarTag;result.rootTags=traverseObject.rootViewTags;result.drawerTag=traverseObject.drawerTag;result.bottomSheetTags=traverseObject.bottomSheetTags;result.modalTag=traverseObject.modalTag;result.modalType=traverseObject.modalType;if(options.integrationType===_pendoTypes.IntegrationType.expoRouter||result.rootTags.length===0&&options.integrationType===_pendoTypes.IntegrationType.reactNavigation){if(options.integrationType===_pendoTypes.IntegrationType.reactNavigation){_pendoLogger.Logger.debug('No rootTags were found, will try to find screenContainer tag');}_fiberTypes.TagFinder.findScreenContainerRootTag(rootFiberNode,result,options);}result.clickableElements=_pendoNode.PendoNode.pendoClickableNodes(Array.from(traverseObject.nativeNodes),traverseObject.onPressDictionary);return result;}