From 884bbd2ada43bed1aa1dd42bedc0c2d2dd76df89 Mon Sep 17 00:00:00 2001 From: zzj3720 <17165520+zzj3720@users.noreply.github.com> Date: Tue, 24 Dec 2024 02:49:21 +0000 Subject: [PATCH] feat(editor): add tracking for the creation of linked-doc (#9266) close: BS-2189 --- .../telemetry-service/telemetry-service.ts | 3 ++- .../shared/src/services/telemetry-service/types.ts | 4 ++++ .../database-block/detail-panel/note-renderer.ts | 8 ++++++++ .../src/database-block/properties/title/text.ts | 14 +++++++++++++- 4 files changed, 27 insertions(+), 2 deletions(-) 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 fd1d4d0122..72c2d2be7d 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 { DocCreatedEvent, ElementCreationEvent, ElementLockEvent, + LinkedDocCreatedEvent, MindMapCollapseEvent, TelemetryEvent, } from './types.js'; @@ -15,7 +16,7 @@ export type TelemetryEventMap = OutDatabaseAllEvents & LinkToolbarEvents & { DocCreated: DocCreatedEvent; Link: TelemetryEvent; - LinkedDocCreated: TelemetryEvent; + LinkedDocCreated: LinkedDocCreatedEvent; SplitNote: TelemetryEvent; CanvasElementAdded: ElementCreationEvent; EdgelessElementLocked: ElementLockEvent; diff --git a/blocksuite/affine/shared/src/services/telemetry-service/types.ts b/blocksuite/affine/shared/src/services/telemetry-service/types.ts index 553dfa351c..69de843526 100644 --- a/blocksuite/affine/shared/src/services/telemetry-service/types.ts +++ b/blocksuite/affine/shared/src/services/telemetry-service/types.ts @@ -22,6 +22,10 @@ export interface TelemetryEvent { other?: unknown; } +export interface LinkedDocCreatedEvent extends TelemetryEvent { + parentFlavour?: string; +} + export interface DocCreatedEvent extends TelemetryEvent { page?: 'doc editor' | 'whiteboard editor'; segment?: 'whiteboard' | 'note' | 'doc'; diff --git a/blocksuite/blocks/src/database-block/detail-panel/note-renderer.ts b/blocksuite/blocks/src/database-block/detail-panel/note-renderer.ts index a5fa6bb5d3..95916e3400 100644 --- a/blocksuite/blocks/src/database-block/detail-panel/note-renderer.ts +++ b/blocksuite/blocks/src/database-block/detail-panel/note-renderer.ts @@ -3,6 +3,7 @@ import type { DatabaseBlockModel, RootBlockModel, } from '@blocksuite/affine-model'; +import { TelemetryProvider } from '@blocksuite/affine-shared/services'; import type { AffineTextAttributes } from '@blocksuite/affine-shared/types'; import { createDefaultDoc, @@ -78,6 +79,13 @@ export class NoteRenderer ]) ); } + // Track when a linked doc is created in database title column + this.host.std.getOptional(TelemetryProvider)?.track('LinkedDocCreated', { + segment: 'database', + module: 'center peek in database', + type: 'turn into', + parentFlavour: 'affine:database', + }); } } diff --git a/blocksuite/blocks/src/database-block/properties/title/text.ts b/blocksuite/blocks/src/database-block/properties/title/text.ts index 2e74c82cca..b43972fdba 100644 --- a/blocksuite/blocks/src/database-block/properties/title/text.ts +++ b/blocksuite/blocks/src/database-block/properties/title/text.ts @@ -3,7 +3,10 @@ import { type RichText, } from '@blocksuite/affine-components/rich-text'; import type { RootBlockModel } from '@blocksuite/affine-model'; -import { ParseDocUrlProvider } from '@blocksuite/affine-shared/services'; +import { + ParseDocUrlProvider, + TelemetryProvider, +} from '@blocksuite/affine-shared/services'; import { getViewportElement, isValidUrl, @@ -295,6 +298,14 @@ export class HeaderAreaTextCellEditing extends BaseTextCell { index: inlineRange.index + text.length, length: 0, }); + + // Track when a linked doc is created in database title column + std?.getOptional(TelemetryProvider)?.track('LinkedDocCreated', { + module: 'database title cell', + type: 'paste', + segment: 'database', + parentFlavour: 'affine:database', + }); } else { inlineEditor?.insertText(inlineRange, text, { link: text, @@ -390,6 +401,7 @@ export class HeaderAreaTextCellEditing extends BaseTextCell { this.topContenteditableElement?.host ? getViewportElement(this.topContenteditableElement.host) : null}" + data-parent-flavour="affine:database" class="data-view-header-area-rich-text can-link-doc" >`; }