Track accidental stars on change page
If user stars a change and then unstars it within 10 seconds, we
count this as an act of accidental starring.
Change-Id: I3e94b28ae85b678674b9723044e4525101a34832
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
index 5447c5c..b753cf9 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
@@ -202,6 +202,8 @@
const REPLY_REFIT_DEBOUNCE_INTERVAL_MS = 500;
+const ACCIDENTAL_STARRING_LIMIT_MS = 10 * 1000;
+
const TRAILING_WHITESPACE_REGEX = /[ \t]+$/gm;
const MSG_PREFIX = '#message-';
@@ -590,6 +592,8 @@
private scrollTask?: DelayedTask;
+ private lastStarredTimestamp?: number;
+
/** @override */
ready() {
super.ready();
@@ -2795,6 +2799,16 @@
}
_handleToggleStar(e: CustomEvent<{change: ChangeInfo; starred: boolean}>) {
+ if (e.detail.starred) {
+ this.lastStarredTimestamp = Date.now();
+ } else {
+ if (
+ this.lastStarredTimestamp &&
+ Date.now() - this.lastStarredTimestamp < ACCIDENTAL_STARRING_LIMIT_MS
+ ) {
+ this.reporting.reportInteraction('change-accidentally-starred');
+ }
+ }
this.restApiService.saveChangeStarred(
e.detail.change._number,
e.detail.starred