UNPKG

rn-pendo-sdk

Version:

Pendo Mobile React Native SDK

1 lines 3.75 kB
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 _excluded=["children"],_excluded2=["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 PNDExpoRouterContainer=function(_BasePNDContainer){function PNDExpoRouterContainer(props){(0,_classCallCheck2.default)(this,PNDExpoRouterContainer);return _callSuper(this,PNDExpoRouterContainer,[props,_pendoTypes.IntegrationType.expoRouter,traversalOptionsObject]);}(0,_inherits2.default)(PNDExpoRouterContainer,_BasePNDContainer);return(0,_createClass2.default)(PNDExpoRouterContainer,[{key:"render",value:function render(){try{return this._render();}catch(e){_pendoLogger.Logger.warn(`PNDExpoRouterContainer failed to render`,e);var _this$props=this.props,children=_this$props.children,rest=(0,_objectWithoutProperties2.default)(_this$props,_excluded);return _react.default.createElement(WrappedComponent,rest,children);}}},{key:"_render",value:function _render(){var _this=this;var _this$props2=this.props,children=_this$props2.children,rest=(0,_objectWithoutProperties2.default)(_this$props2,_excluded2);return _react.default.createElement(WrappedComponent,Object.assign({},rest,{onExpoRouterStateChange:function onExpoRouterStateChange(pathName,params){if(!_common.Utils.isSDKOperational(false)){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 ${JSON.stringify(currRouteName)} not changed.`);}_this.setCurrentState(state);_this.executeAnalyzer(traversalOptionsObject.debouncerTime,_debouncer.RequestOrigin.Internal,_common.Consts.kOnStateChange);}}),children?children:null);}}]);}(_pendoBase.BasePNDContainer);return PNDExpoRouterContainer;}