Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/notes/components/notes_app.vue')
-rw-r--r--app/assets/javascripts/notes/components/notes_app.vue18
1 files changed, 17 insertions, 1 deletions
diff --git a/app/assets/javascripts/notes/components/notes_app.vue b/app/assets/javascripts/notes/components/notes_app.vue
index 86f93ee425e..eb6764a7937 100644
--- a/app/assets/javascripts/notes/components/notes_app.vue
+++ b/app/assets/javascripts/notes/components/notes_app.vue
@@ -2,6 +2,7 @@
// eslint-disable-next-line no-restricted-imports
import { mapGetters, mapActions } from 'vuex';
import { v4 as uuidv4 } from 'uuid';
+import { InternalEvents } from '~/tracking';
import highlightCurrentUser from '~/behaviors/markdown/highlight_current_user';
import TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';
import OrderedLayout from '~/vue_shared/components/ordered_layout.vue';
@@ -39,7 +40,7 @@ export default {
TimelineEntryItem,
AiSummary: () => import('ee_component/notes/components/ai_summary.vue'),
},
- mixins: [glFeatureFlagsMixin()],
+ mixins: [glFeatureFlagsMixin(), InternalEvents.mixin()],
provide() {
return {
summarizeClientSubscriptionId: uuidv4(),
@@ -165,6 +166,9 @@ export default {
});
}
+ eventHub.$on('noteFormAddToReview', this.handleReviewTracking);
+ eventHub.$on('noteFormStartReview', this.handleReviewTracking);
+
window.addEventListener('hashchange', this.handleHashChanged);
eventHub.$on('notesApp.updateIssuableConfidentiality', this.setConfidentiality);
@@ -177,6 +181,8 @@ export default {
beforeDestroy() {
window.removeEventListener('hashchange', this.handleHashChanged);
eventHub.$off('notesApp.updateIssuableConfidentiality', this.setConfidentiality);
+ eventHub.$off('noteFormStartReview', this.handleReviewTracking);
+ eventHub.$off('noteFormAddToReview', this.handleReviewTracking);
},
methods: {
...mapActions([
@@ -222,6 +228,16 @@ export default {
setAiLoading(loading) {
this.aiLoading = loading;
},
+ handleReviewTracking(event) {
+ const types = {
+ noteFormStartReview: 'merge_request_click_start_review_on_overview_tab',
+ noteFormAddToReview: 'merge_request_click_add_to_review_on_overview_tab',
+ };
+
+ if (this.shouldShow && window.mrTabs && types[event.name]) {
+ this.trackEvent(types[event.name]);
+ }
+ },
},
systemNote: constants.SYSTEM_NOTE,
};