From a71f3622e2f3a4088484be26b215e690657d247c Mon Sep 17 00:00:00 2001 From: Alex Grozav Date: Wed, 21 Sep 2022 14:27:25 +0300 Subject: [PATCH] fix: prevent sending multiple telemetry events on credential filters reset (#4159) --- .../editor-ui/src/views/CredentialsView.vue | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/editor-ui/src/views/CredentialsView.vue b/packages/editor-ui/src/views/CredentialsView.vue index 05d100f3b..f807260c9 100644 --- a/packages/editor-ui/src/views/CredentialsView.vue +++ b/packages/editor-ui/src/views/CredentialsView.vue @@ -286,6 +286,7 @@ export default mixins( ownedBy: '', sharedWith: '', }, + resettingFilters: false, EnterpriseEditionFeature, }; }, @@ -412,6 +413,9 @@ export default mixins( this.filtersInput.type = []; this.filtersInput.ownedBy = ''; this.filtersInput.sharedWith = ''; + + this.resettingFilters = true; + this.sendFiltersTelemetry('reset'); }, focusSearchInput() { if (this.$refs.search) { @@ -436,7 +440,17 @@ export default mixins( sorting: this.filters.sortBy, }); }, - sendFiltersTelemetry() { + sendFiltersTelemetry(source: string) { + // Prevent sending multiple telemetry events when resetting filters + // Timeout is required to wait for search debounce to be over + if (this.resettingFilters) { + if (source !== 'reset') { + return; + } + + setTimeout(() => this.resettingFilters = false, 1500); + } + const filters = this.filters as Record; const filtersSet: string[] = []; const filterValues: Array = []; @@ -468,16 +482,16 @@ export default mixins( if (value) { this.setOwnerFilter(false); } - this.sendFiltersTelemetry(); + this.sendFiltersTelemetry('ownedBy'); }, 'filters.sharedWith'() { - this.sendFiltersTelemetry(); + this.sendFiltersTelemetry('sharedWith'); }, 'filters.type'() { - this.sendFiltersTelemetry(); + this.sendFiltersTelemetry('type'); }, 'filters.search'() { - this.callDebounced('sendFiltersTelemetry', { debounceTime: 1000, trailing: true }); + this.callDebounced('sendFiltersTelemetry', { debounceTime: 1000, trailing: true }, 'search'); }, 'filters.sortBy'() { this.sendSortingTelemetry();