From 6ade2b708433fcde34c897d7dd8eb037e2264bf5 Mon Sep 17 00:00:00 2001 From: fundon Date: Thu, 27 Mar 2025 08:17:44 +0000 Subject: [PATCH] chore(editor): add event tracking to drawing tool (#11230) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: [BS-2833](https://linear.app/affine-design/issue/BS-2833/考虑屏蔽或者降低brush-行为的采集密度) --- blocksuite/affine/gfx/brush/src/brush-tool.ts | 18 ++++++++++-------- .../telemetry-service/telemetry-service.ts | 2 ++ .../src/services/telemetry-service/types.ts | 8 ++++++++ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/blocksuite/affine/gfx/brush/src/brush-tool.ts b/blocksuite/affine/gfx/brush/src/brush-tool.ts index d70068c3b5..1029b91189 100644 --- a/blocksuite/affine/gfx/brush/src/brush-tool.ts +++ b/blocksuite/affine/gfx/brush/src/brush-tool.ts @@ -154,14 +154,6 @@ export class BrushTool extends BaseTool { points, }); - this.std.getOptional(TelemetryProvider)?.track('CanvasElementAdded', { - control: 'canvas:draw', - page: 'whiteboard editor', - module: 'toolbar', - segment: 'toolbar', - type: CanvasElementType.BRUSH, - }); - const element = this.gfx.getElementById(id) as BrushElementModel; element.stash('points'); @@ -174,6 +166,16 @@ export class BrushTool extends BaseTool { this._draggingPathPressures = [e.pressure]; this._lastPopLength = 0; } + + override activate() { + this.std.getOptional(TelemetryProvider)?.track('EdgelessToolPicked', { + page: 'whiteboard editor', + module: 'global toolbar', + segment: 'global toolbar', + control: 'drawing', + type: CanvasElementType.BRUSH, + }); + } } declare module '@blocksuite/block-std/gfx' { diff --git a/blocksuite/affine/shared/src/services/telemetry-service/telemetry-service.ts b/blocksuite/affine/shared/src/services/telemetry-service/telemetry-service.ts index daafeba8e7..9f032d3850 100644 --- a/blocksuite/affine/shared/src/services/telemetry-service/telemetry-service.ts +++ b/blocksuite/affine/shared/src/services/telemetry-service/telemetry-service.ts @@ -7,6 +7,7 @@ import type { AttachmentUploadedEvent, BlockCreationEvent, DocCreatedEvent, + EdgelessToolPickedEvent, ElementCreationEvent, ElementLockEvent, LinkedDocCreatedEvent, @@ -26,6 +27,7 @@ export type TelemetryEventMap = OutDatabaseAllEvents & ExpandedAndCollapsed: MindMapCollapseEvent; AttachmentUploadedEvent: AttachmentUploadedEvent; BlockCreated: BlockCreationEvent; + EdgelessToolPicked: EdgelessToolPickedEvent; }; export interface TelemetryService { diff --git a/blocksuite/affine/shared/src/services/telemetry-service/types.ts b/blocksuite/affine/shared/src/services/telemetry-service/types.ts index 652a72b3e0..63faef8e08 100644 --- a/blocksuite/affine/shared/src/services/telemetry-service/types.ts +++ b/blocksuite/affine/shared/src/services/telemetry-service/types.ts @@ -69,3 +69,11 @@ export interface AttachmentUploadedEvent extends TelemetryEvent { type: string; // file type category: 'success' | 'failure'; } + +export interface EdgelessToolPickedEvent extends TelemetryEvent { + page: 'whiteboard editor'; + segment: 'global toolbar'; + module: 'global toolbar'; + control: 'drawing'; + type: 'brush'; +}