rn-pendo-sdk
Version:
Pendo Mobile React Native SDK
1 lines • 3.59 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.WithPendoExpoRouter=WithPendoExpoRouter;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _common=require("./common");var _debouncer=require("./debouncer");var _pendoBase=require("./pendoBase");var _pendoLogger=require("./pendoLogger");var _pendoTypes=require("./pendoTypes");var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/home/circleci/project/src/pendoExpoRouter.tsx";var _excluded=["children"];function _callSuper(t,o,e){return o=(0,_getPrototypeOf2.default)(o),(0,_possibleConstructorReturn2.default)(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2.default)(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var ReactNativePendo=_reactNative.NativeModules.ReactNativePendo;function WithPendoExpoRouter(WrappedComponent,options){_pendoLogger.Logger.debug('WithExpoRouter was called');var traversalOptionsObject=_common.Utils.mergeWithDefaultTraverseOptions(options);traversalOptionsObject.ios.collectAllClickableElements=true;traversalOptionsObject.android.collectAllClickableElements=true;var PNDContainer=function(_BasePNDContainer){function PNDContainer(props){(0,_classCallCheck2.default)(this,PNDContainer);return _callSuper(this,PNDContainer,[props,_pendoTypes.IntegrationType.expoRouter,traversalOptionsObject]);}(0,_inherits2.default)(PNDContainer,_BasePNDContainer);return(0,_createClass2.default)(PNDContainer,[{key:"render",value:function render(){var _this=this;var _this$props=this.props,children=_this$props.children,rest=(0,_objectWithoutProperties2.default)(_this$props,_excluded);return((0,_jsxRuntime.jsx)(WrappedComponent,Object.assign({onExpoRouterStateChange:function onExpoRouterStateChange(pathName,params){if(!_common.Utils.hasPendoNativeModule()){return;}var state={type:'',key:pathName,index:0,routeNames:[pathName],routes:[{name:pathName,key:pathName,state:null,params:params}]};ReactNativePendo.shouldScanForDynamicElements(false);var prevRouteName=_common.Utils.retroactiveScreenId(_this.getCurrentState());var currRouteName=_common.Utils.retroactiveScreenId(state);if(prevRouteName.routeName===currRouteName.routeName){_pendoLogger.Logger.debug(`Screen ${currRouteName} not changed.`);}_this.setCurrentState(state);_this.debouncer.debounce(_this.executeAnalyzer.bind(_this),traversalOptionsObject.debouncerTime,_debouncer.RequestOrigin.Internal)();}},rest,{children:children?children:null})));}},{key:"executeAnalyzer",value:function executeAnalyzer(event){if(!_common.Utils.hasPendoNativeModule(false)){return;}var state=this.getCurrentState();this.analyze(this,state,event);}}]);}(_pendoBase.BasePNDContainer);return PNDContainer;}