From 9f0d4536c71518d93c1bd4699b23b8d75ef48f8d Mon Sep 17 00:00:00 2001 From: zzj3720 <17165520+zzj3720@users.noreply.github.com> Date: Wed, 28 May 2025 11:10:33 +0000 Subject: [PATCH] feat(editor): add view event tracking (#12602) close: BS-3567 ## Summary by CodeRabbit - **Refactor** - Improved the process for adding new views by centralizing related logic, resulting in a more streamlined and consistent user experience. - **Chores** - Enhanced event tracking for database views to support better analytics. --- .../src/widget-presets/views-bar/views-view.ts | 14 ++++++++++---- .../src/services/telemetry-service/database.ts | 3 +++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/blocksuite/affine/data-view/src/widget-presets/views-bar/views-view.ts b/blocksuite/affine/data-view/src/widget-presets/views-bar/views-view.ts index 7fa071b465..b6533f0da7 100644 --- a/blocksuite/affine/data-view/src/widget-presets/views-bar/views-view.ts +++ b/blocksuite/affine/data-view/src/widget-presets/views-bar/views-view.ts @@ -74,6 +74,14 @@ export class DataViewHeaderViews extends WidgetBase { } `; + private addView(type: string) { + const id = this.viewManager.viewAdd(type); + this.viewManager.setCurrentView(id); + this.dataViewLogic.root.config.eventTrace('AddDatabaseView', { + type: type, + }); + } + _addViewMenu = (event: MouseEvent) => { popFilterableSimpleMenu( popupTargetFromElement(event.currentTarget as HTMLElement), @@ -82,8 +90,7 @@ export class DataViewHeaderViews extends WidgetBase { name: v.model.defaultName, prefix: html``, select: () => { - const id = this.viewManager.viewAdd(v.type); - this.viewManager.setCurrentView(id); + this.addView(v.type); }, }); }) @@ -135,8 +142,7 @@ export class DataViewHeaderViews extends WidgetBase { hide: () => this.readonly, prefix: PlusIcon(), select: () => { - const id = this.viewManager.viewAdd(v.type); - this.viewManager.setCurrentView(id); + this.addView(v.type); }, }); }), diff --git a/blocksuite/affine/shared/src/services/telemetry-service/database.ts b/blocksuite/affine/shared/src/services/telemetry-service/database.ts index d25d1590a9..01ee8b83ae 100644 --- a/blocksuite/affine/shared/src/services/telemetry-service/database.ts +++ b/blocksuite/affine/shared/src/services/telemetry-service/database.ts @@ -45,6 +45,9 @@ export type DatabaseGroupEvents = { export type DatabaseEvents = { AddDatabase: {}; + AddDatabaseView: { + type: string; + }; }; export interface DatabaseAllSortEvents {