UNPKG

rn-pendo-sdk

Version:

Pendo Mobile React Native SDK

1 lines 5.3 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ResetPendoPaperState=ResetPendoPaperState;exports.WithPendoPaper=WithPendoPaper;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 _get2=_interopRequireDefault(require("@babel/runtime/helpers/get"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _common=require("./common");var _debouncer=require("./debouncer");var _pendoBase=require("./pendoBase");var _pendoLogger=require("./pendoLogger");var _pendoTypes=require("./pendoTypes");var _excluded=["children"],_excluded2=["onIndexChange","navigationState","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;})();}function _superPropGet(t,o,e,r){var p=(0,_get2.default)((0,_getPrototypeOf2.default)(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t);}:p;}var PendoPaperInitialized=false;function WithPendoPaper(WrappedComponent,options){if(PendoPaperInitialized){_pendoLogger.Logger.error('WithPendoPaper was called more than once. Please make sure you only call WithPendoPaper once in the application lifecycle.');return WrappedComponent;}_pendoLogger.Logger.debug('WithPendoPaper was called');var traversalOptionsObject=_common.Utils.mergeWithDefaultTraverseOptions(options);var PNDPaperContainer=function(_BasePNDContainer){function PNDPaperContainer(props){(0,_classCallCheck2.default)(this,PNDPaperContainer);return _callSuper(this,PNDPaperContainer,[props,_pendoTypes.IntegrationType.paper,traversalOptionsObject]);}(0,_inherits2.default)(PNDPaperContainer,_BasePNDContainer);return(0,_createClass2.default)(PNDPaperContainer,[{key:"getPendoNavigationState",value:function getPendoNavigationState(navigationState,index){if(navigationState&&navigationState.routes){if(index==null){index=navigationState.index;}var currentRoute=navigationState.routes[index];return{type:'paper',key:(currentRoute==null?void 0:currentRoute.key)||`paper-route-${index}`,index:index,routeNames:navigationState.routes.map(function(route){return route.key;}),routes:navigationState.routes.map(function(route){return{name:route.key,key:route.key,state:null,params:undefined};})};}return null;}},{key:"componentDidMount",value:function componentDidMount(){_superPropGet(PNDPaperContainer,"componentDidMount",this,3)([]);var navigationState=this.props.navigationState;var state=this.getPendoNavigationState(navigationState);if(state){this.setCurrentState(state);this.executeAnalyzer(traversalOptionsObject.firstScreenDebouncerTime,_debouncer.RequestOrigin.Internal,_common.Consts.kOnReady);}else{_pendoLogger.Logger.info('No state for first screen.');}}},{key:"componentWillUnmount",value:function componentWillUnmount(){_superPropGet(PNDPaperContainer,"componentWillUnmount",this,3)([]);PendoPaperInitialized=false;}},{key:"render",value:function render(){try{return this._render();}catch(e){_pendoLogger.Logger.warn(`PNDPaperContainer 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,_onIndexChange=_this$props2.onIndexChange,navigationState=_this$props2.navigationState,children=_this$props2.children,rest=(0,_objectWithoutProperties2.default)(_this$props2,_excluded2);return _react.default.createElement(WrappedComponent,Object.assign({},rest,{navigationState:navigationState,onIndexChange:function onIndexChange(index){var state=_this.getPendoNavigationState(navigationState,index);if(state){var prevRouteName=_common.Utils.retroactiveScreenId(_this.getCurrentState());var currRouteName=_common.Utils.retroactiveScreenId(state);if(prevRouteName.routeName===currRouteName.routeName){_pendoLogger.Logger.debug(`Screen not changed.`);}_this.setCurrentState(state);_this.executeAnalyzer(traversalOptionsObject.debouncerTime,_debouncer.RequestOrigin.Internal,_common.Consts.kOnStateChange);}if(typeof _onIndexChange==='function'){_pendoLogger.Logger.debug('Propagating onIndexChange');_onIndexChange(index);}}}),children?children:null);}}]);}(_pendoBase.BasePNDContainer);PendoPaperInitialized=true;return PNDPaperContainer;}function ResetPendoPaperState(){PendoPaperInitialized=false;}