rn-pendo-sdk
Version:
Pendo Mobile React Native SDK
1 lines • 6.22 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:true});exports.traverseOniOSFabric=void 0;var _common=require("./common");var _fiberTypes=require("./fiber-types");var _pendoLogger=require("./pendoLogger");var _pendoTypes=require("./pendoTypes");var _traverseOptions=require("./traverseOptions");var traverseOniOSFabric=exports.traverseOniOSFabric=function traverseOniOSFabric(node,traverseObject,options){if(options.screenId&&(node==null?void 0:node.key)===options.screenId&&!_fiberTypes.TagFinder.isTouchableElement(node)){var fiberNode=_fiberTypes.TagFinder.closestNativeNodeFabric(node,_traverseOptions.TraverseDirection.Parent);var rootTag=_fiberTypes.TagFinder.nativeTag(fiberNode);if(rootTag&&(_fiberTypes.TagFinder.isRCTView(fiberNode)||_fiberTypes.TagFinder.isRNSScreen(fiberNode))){_common.Utils.addRootTag(traverseObject.rootViewTags,rootTag,'Root Tag discovered: ');}}if(options.isDrawerVisible&&_fiberTypes.TagFinder.isDrawerRelatedNode(node,options.drawerBaseNameCandidates)){var drawerTag=_fiberTypes.TagFinder.closestDrawerFabricTag(node,options.drawerTakeRCTView);if(drawerTag){if(traverseObject.drawerTag===null){traverseObject.drawerTag=drawerTag;_common.Utils.addRootTag(traverseObject.rootViewTags,traverseObject.drawerTag,'Drawer discovered ');}else{_pendoLogger.Logger.debug('Drawer discovered but ignored ',drawerTag);}}}if(_fiberTypes.TagFinder.isNavigationBar(node,options.navigationBarBaseNameCandidates)){var navigationBarNode=_fiberTypes.TagFinder.closestNativeNodeFabric(node,_traverseOptions.TraverseDirection.Child,false);if(navigationBarNode){var navigationBarClickableElements=_fiberTypes.TagFinder.traverseComponentToFindClickableElements(node,options);navigationBarClickableElements.forEach(traverseObject.nativeNodes.add,traverseObject.nativeNodes);traverseObject.navigationBarTag=_fiberTypes.TagFinder.nativeTag(navigationBarNode);_pendoLogger.Logger.debug('NavigationBar discovered ',traverseObject.navigationBarTag);}}if(_fiberTypes.TagFinder.isMaterialTabBarExists(node,options.tabBarWrapperView)){traverseObject.materialTabBarExists=true;}if(traverseObject.materialTabBarExists&&_fiberTypes.TagFinder.isTabBarNavigator(node,options.tabBarBaseNameCandidates)){var materialTabBarTag=_fiberTypes.TagFinder.closestNativeNodeTag(node,options.tabBarTraverseDirection,options.tabBarTakeRCTView);if(materialTabBarTag){traverseObject.tabBarTag=materialTabBarTag;_pendoLogger.Logger.debug('TabBar Navigator discovered ',traverseObject.tabBarTag);}}if(traverseObject.bottomBarTag===null&&_fiberTypes.TagFinder.isBottomTabBar(node,options.bottomBarBaseNameCandidates)){var bottomTabBarNode=_fiberTypes.TagFinder.closestNativeNodeSiblingsChildFabric(node,options.bottomBarTakeRCTView);if(bottomTabBarNode){var bottomBarClickableElements=_fiberTypes.TagFinder.traverseComponentToFindClickableElements(node,options);bottomBarClickableElements.forEach(traverseObject.nativeNodes.add,traverseObject.nativeNodes);traverseObject.bottomBarTag=_fiberTypes.TagFinder.nativeTag(bottomTabBarNode);_pendoLogger.Logger.debug('Bottom Tab Bar discovered ',traverseObject.bottomBarTag);}}if(_fiberTypes.TagFinder.isMaterialBottomTabNavigator(node,options.materialBottomTabBaseNameCandidates)){var _bottomTabBarNode=_fiberTypes.TagFinder.closestNativeNodeFabric(node,options.materialBottomTabTraverseDirection,options.materialBottomTabTakeRCTView);if(_bottomTabBarNode){var _bottomBarClickableElements=_fiberTypes.TagFinder.traverseComponentToFindClickableElements(node,options);_bottomBarClickableElements.forEach(traverseObject.nativeNodes.add,traverseObject.nativeNodes);traverseObject.bottomBarTag=_fiberTypes.TagFinder.highestTagInStateNodeChildren(_bottomTabBarNode);_pendoLogger.Logger.debug('Material Bottom Tab Navigator was discovered ',traverseObject.bottomBarTag);}}if(_fiberTypes.TagFinder.isBottomSheet(node,options.bottomSheetBaseNameCandidates)&&traverseObject.modalType!==_pendoTypes.ModalType.GorhomModal){var bottomSheetNode=_fiberTypes.TagFinder.closestNativeNode(node,options.regularTraverseDirection,options.regularTakeRCTView);if(bottomSheetNode){var bottomSheetClickableElements=_fiberTypes.TagFinder.traverseComponentToFindClickableElements(node,options);bottomSheetClickableElements.forEach(traverseObject.nativeNodes.add,traverseObject.nativeNodes);var bottomSheetNativeTag=_fiberTypes.TagFinder.nativeTag(bottomSheetNode,options.regularTakeRCTView);if(bottomSheetNativeTag&&!traverseObject.bottomSheetTags.includes(bottomSheetNativeTag)){traverseObject.bottomSheetTags.push(bottomSheetNativeTag);_common.Utils.addRootTag(traverseObject.rootViewTags,bottomSheetNativeTag,'Bottom Sheet discovered: ');}}}if(traverseObject.modalTag==null){var modalType=_fiberTypes.TagFinder.getModalType(node,options);if(modalType!==_pendoTypes.ModalType.None){var direction=modalType===_pendoTypes.ModalType.ReactModal?options.reactModalTraverseDirection:options.gorhomModalTraverseDirection;var takeRCTView=modalType===_pendoTypes.ModalType.ReactModal?options.reactModalTakeRCTView:options.gorhomModalTakeRCTView;var modalNode=_fiberTypes.TagFinder.closestNativeNodeFabric(node,direction,takeRCTView);if(modalNode){var modalTag=_fiberTypes.TagFinder.nativeTag(modalNode,takeRCTView);if(modalTag){traverseObject.modalTag=modalTag;traverseObject.modalType=modalType;_common.Utils.addRootTag(traverseObject.rootViewTags,traverseObject.modalTag,`${_fiberTypes.TagFinder.getModalTypeName(modalType)} modal discovered: `);}}}}if((options.collectAllClickableElements||traverseObject.rootViewTags.length>0)&&_fiberTypes.TagFinder.isNodeClickable(node,options.clickableElementsNativeIDsRegex)){var closestNativeNode=_fiberTypes.TagFinder.closestNativeNode(node,options.regularTraverseDirection);if(closestNativeNode){var _node$return,_node$return$pendingP;var functionRef=node==null?void 0:(_node$return=node.return)==null?void 0:(_node$return$pendingP=_node$return.pendingProps)==null?void 0:_node$return$pendingP.onPress;var tagKey=_fiberTypes.TagFinder.nativeTag(closestNativeNode);if(functionRef&&tagKey){var onPressActionStr=String(functionRef);traverseObject.onPressDictionary.set(tagKey,_common.Utils.removeSpacesAndNewLine(onPressActionStr));}traverseObject.nativeNodes.add(closestNativeNode);}}};