Skip to content

Commit b8b2ac0

Browse files
committed
Update: Added screen change analytics
1 parent e3a2143 commit b8b2ac0

File tree

1 file changed

+50
-11
lines changed

1 file changed

+50
-11
lines changed

src/arc-electron.html

Lines changed: 50 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -536,35 +536,74 @@
536536
ipc.removeListener('request-action', this.__rah);
537537
ipc.removeListener('command', this.__ch);
538538
},
539-
539+
/**
540+
* Handler for the `navigate` custom event. Updates a route depending on
541+
* passed data.
542+
*
543+
*/
540544
_navigateHandler: function(e) {
541545
var params = e.detail;
542546
var url;
547+
var screenName = '[unknown]';
543548
switch (params.base) {
544-
case 'default': url = '/request/latest/0'; break;
545-
case 'history': url = '/history'; break;
546-
case 'settings': url = '/settings'; break;
547-
case 'about': url = '/about'; break;
548-
case 'socket': url = '/socket'; break;
549-
case 'saved': url = '/saved'; break;
550-
case 'dataimport': url = '/dataimport'; break;
549+
case 'default':
550+
url = '/request/latest/0';
551+
screenName = 'Request - latest';
552+
break;
553+
case 'history':
554+
url = '/history';
555+
screenName = 'History';
556+
break;
557+
case 'settings':
558+
url = '/settings';
559+
screenName = 'Settings';
560+
break;
561+
case 'about':
562+
url = '/about';
563+
screenName = 'About';
564+
break;
565+
case 'socket':
566+
url = '/socket';
567+
screenName = 'Socket';
568+
break;
569+
case 'saved':
570+
url = '/saved';
571+
screenName = 'Saved';
572+
break;
573+
case 'dataimport':
574+
url = '/dataimport';
575+
screenName = 'Data import / export';
576+
break;
551577
case 'project':
552578
if (params.id) {
553579
url = '/project/' + params.id;
580+
screenName = 'Project details';
554581
}
555-
break;
582+
break;
556583
case 'request':
584+
screenName = 'Request - ';
557585
let type = params.type || 'latest';
558586
let id = params.id || '0';
587+
screenName += type;
559588
url = '/request/' + type + '/' + encodeURIComponent(id);
560-
break;
589+
break;
561590
case 'drive':
562591
url = '/drive';
563-
break;
592+
screenName = 'Drive selector';
593+
break;
564594
}
565595
if (url) {
566596
this.set('route.path', url);
597+
this.fire('send-analytics', {
598+
type: 'screenview',
599+
name: screenName
600+
});
567601
} else {
602+
this.fire('send-analytics', {
603+
type: 'exception',
604+
description: 'Route not handled' + JSON.stringify(params),
605+
fatal: false
606+
});
568607
throw new Error('The route is not handled correctly', params);
569608
}
570609
},

0 commit comments

Comments
 (0)