mopinion-react-native-sdk
Version:
Collect in-app feedback with Mopinion for React Native. Built fully in React Native for optimal integration with your React Native app.
1 lines • 2.4 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _=require("./");var _logger=require("../api/logger");var Track=exports.default=function(){function Track(config){var _this=this;(0,_classCallCheck2.default)(this,Track);this.send=function(event,eventProps){if(_this.metrics){_this.sendMetrics(event,eventProps);}};this.sendMetrics=function(event,eventProps){var sessionCookie='NOSESSION';if(_this.surveyKey==null){_logger.logger.log('Form metrics not ready yet for event '+event);return;}(0,_.getCookie)('SQsession').then(function(sessionID){if(!sessionID){sessionCookie=(0,_.createRandomId)();(0,_.setCookie)('SQsession',sessionCookie,0.5/24);}else{sessionCookie=sessionID;}var data={project_token:_this.surveyKey,datetime:new Date(new Date().getTime()-new Date().getTimezoneOffset()*60000).toISOString(),session:sessionCookie,url:'',url_title:'',url_referrer:'',host:'',user_agent:Platform.OS,browser_language:'',viewport:_this.screenSize,Dextra:{eventName:event,eventProps:Object.assign({},eventProps)}};_logger.logger.log('Send Metrics');fetch('https://metrics.mopinion.com/datapoints',{method:'post',headers:{'Content-Type':'application/json'},body:JSON.stringify(data)}).then(function(r){_logger.logger.log('Metrics sent OK.');}).catch(function(e){return _logger.logger.log(e);});}).catch(function(err){_logger.logger.log('Form Metrics: Error getting cookie');});};if(typeof config!=='undefined'&&config!=null){this.setConfig(config);}else{this.surveyKey=null;this.surveyName=null;this.metrics=false;}}return(0,_createClass2.default)(Track,[{key:"setConfig",value:function setConfig(config){var _config$properties=config.properties,advanced=_config$properties.advanced,_config$properties$ad=_config$properties.advanced,_config$properties$ad2=_config$properties$ad.analytics_integration,analytics_integration=_config$properties$ad2===void 0?{}:_config$properties$ad2,logMetrics=_config$properties$ad.logMetrics;this.surveyKey=config.surveyKey;this.surveyName=config.properties.name;this.screenSize=config.screenSize;if(logMetrics){this.metrics=true;_logger.logger.log('Tracking Metrics');}}}]);}();