diff --git a/blocksuite/affine/gfx/brush/src/highlighter-tool.ts b/blocksuite/affine/gfx/brush/src/highlighter-tool.ts index 7015861ac8..64c5046e54 100644 --- a/blocksuite/affine/gfx/brush/src/highlighter-tool.ts +++ b/blocksuite/affine/gfx/brush/src/highlighter-tool.ts @@ -154,14 +154,6 @@ export class HighlighterTool extends BaseTool { points, }); - this.std.getOptional(TelemetryProvider)?.track('CanvasElementAdded', { - control: 'canvas:draw', - page: 'whiteboard editor', - module: 'toolbar', - segment: 'toolbar', - type: CanvasElementType.HIGHLIGHTER, - }); - const element = this.gfx.getElementById(id) as HighlighterElementModel; element.stash('points'); @@ -174,6 +166,16 @@ export class HighlighterTool 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.HIGHLIGHTER, + }); + } } declare module '@blocksuite/block-std/gfx' { diff --git a/blocksuite/affine/gfx/brush/src/toolbar/configs/highlighter.ts b/blocksuite/affine/gfx/brush/src/toolbar/configs/highlighter.ts index 887954733f..a6fdf847ac 100644 --- a/blocksuite/affine/gfx/brush/src/toolbar/configs/highlighter.ts +++ b/blocksuite/affine/gfx/brush/src/toolbar/configs/highlighter.ts @@ -23,6 +23,10 @@ import { import { BlockFlavourIdentifier } from '@blocksuite/block-std'; import { html } from 'lit'; +const trackBaseProps = { + category: 'highlighter', +}; + export const highlighterToolbarConfig = { actions: [ { @@ -44,6 +48,11 @@ export const highlighterToolbarConfig = { .get(EdgelessCRUDIdentifier) .updateElement(model.id, { lineWidth }); } + + ctx.track('CanvasElementUpdated', { + ...trackBaseProps, + control: 'line width', + }); }; return html` @@ -91,9 +100,16 @@ export const highlighterToolbarConfig = { return; } + const isStartEvent = e.type === 'start'; for (const model of models) { - model[e.type === 'start' ? 'stash' : 'pop'](field); + model[isStartEvent ? 'stash' : 'pop'](field); } + + if (!isStartEvent) return; + ctx.track('CanvasElementUpdated', { + ...trackBaseProps, + control: 'color picker', + }); }; return html` 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 9f032d3850..1111c663f5 100644 --- a/blocksuite/affine/shared/src/services/telemetry-service/telemetry-service.ts +++ b/blocksuite/affine/shared/src/services/telemetry-service/telemetry-service.ts @@ -10,6 +10,7 @@ import type { EdgelessToolPickedEvent, ElementCreationEvent, ElementLockEvent, + ElementUpdatedEvent, LinkedDocCreatedEvent, MindMapCollapseEvent, TelemetryEvent, @@ -23,6 +24,7 @@ export type TelemetryEventMap = OutDatabaseAllEvents & LinkedDocCreated: LinkedDocCreatedEvent; SplitNote: TelemetryEvent; CanvasElementAdded: ElementCreationEvent; + CanvasElementUpdated: ElementUpdatedEvent; EdgelessElementLocked: ElementLockEvent; ExpandedAndCollapsed: MindMapCollapseEvent; AttachmentUploadedEvent: AttachmentUploadedEvent; diff --git a/blocksuite/affine/shared/src/services/telemetry-service/types.ts b/blocksuite/affine/shared/src/services/telemetry-service/types.ts index 63faef8e08..090e1a924d 100644 --- a/blocksuite/affine/shared/src/services/telemetry-service/types.ts +++ b/blocksuite/affine/shared/src/services/telemetry-service/types.ts @@ -75,5 +75,14 @@ export interface EdgelessToolPickedEvent extends TelemetryEvent { segment: 'global toolbar'; module: 'global toolbar'; control: 'drawing'; - type: 'brush'; + type: 'brush' | 'highlighter'; +} + +export interface ElementUpdatedEvent extends TelemetryEvent { + page: 'whiteboard editor'; + segment: 'toolbar'; + module: 'toolbar'; + category: string; + control: string; + type?: string; }