feat(editor): add tracking for the creation of linked-doc (#9266)

close: BS-2189
This commit is contained in:
zzj3720
2024-12-24 02:49:21 +00:00
parent b29cb5945a
commit 884bbd2ada
4 changed files with 27 additions and 2 deletions
@@ -7,6 +7,7 @@ import type {
DocCreatedEvent, DocCreatedEvent,
ElementCreationEvent, ElementCreationEvent,
ElementLockEvent, ElementLockEvent,
LinkedDocCreatedEvent,
MindMapCollapseEvent, MindMapCollapseEvent,
TelemetryEvent, TelemetryEvent,
} from './types.js'; } from './types.js';
@@ -15,7 +16,7 @@ export type TelemetryEventMap = OutDatabaseAllEvents &
LinkToolbarEvents & { LinkToolbarEvents & {
DocCreated: DocCreatedEvent; DocCreated: DocCreatedEvent;
Link: TelemetryEvent; Link: TelemetryEvent;
LinkedDocCreated: TelemetryEvent; LinkedDocCreated: LinkedDocCreatedEvent;
SplitNote: TelemetryEvent; SplitNote: TelemetryEvent;
CanvasElementAdded: ElementCreationEvent; CanvasElementAdded: ElementCreationEvent;
EdgelessElementLocked: ElementLockEvent; EdgelessElementLocked: ElementLockEvent;
@@ -22,6 +22,10 @@ export interface TelemetryEvent {
other?: unknown; other?: unknown;
} }
export interface LinkedDocCreatedEvent extends TelemetryEvent {
parentFlavour?: string;
}
export interface DocCreatedEvent extends TelemetryEvent { export interface DocCreatedEvent extends TelemetryEvent {
page?: 'doc editor' | 'whiteboard editor'; page?: 'doc editor' | 'whiteboard editor';
segment?: 'whiteboard' | 'note' | 'doc'; segment?: 'whiteboard' | 'note' | 'doc';
@@ -3,6 +3,7 @@ import type {
DatabaseBlockModel, DatabaseBlockModel,
RootBlockModel, RootBlockModel,
} from '@blocksuite/affine-model'; } from '@blocksuite/affine-model';
import { TelemetryProvider } from '@blocksuite/affine-shared/services';
import type { AffineTextAttributes } from '@blocksuite/affine-shared/types'; import type { AffineTextAttributes } from '@blocksuite/affine-shared/types';
import { import {
createDefaultDoc, 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',
});
} }
} }
@@ -3,7 +3,10 @@ import {
type RichText, type RichText,
} from '@blocksuite/affine-components/rich-text'; } from '@blocksuite/affine-components/rich-text';
import type { RootBlockModel } from '@blocksuite/affine-model'; import type { RootBlockModel } from '@blocksuite/affine-model';
import { ParseDocUrlProvider } from '@blocksuite/affine-shared/services'; import {
ParseDocUrlProvider,
TelemetryProvider,
} from '@blocksuite/affine-shared/services';
import { import {
getViewportElement, getViewportElement,
isValidUrl, isValidUrl,
@@ -295,6 +298,14 @@ export class HeaderAreaTextCellEditing extends BaseTextCell {
index: inlineRange.index + text.length, index: inlineRange.index + text.length,
length: 0, 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 { } else {
inlineEditor?.insertText(inlineRange, text, { inlineEditor?.insertText(inlineRange, text, {
link: text, link: text,
@@ -390,6 +401,7 @@ export class HeaderAreaTextCellEditing extends BaseTextCell {
this.topContenteditableElement?.host this.topContenteditableElement?.host
? getViewportElement(this.topContenteditableElement.host) ? getViewportElement(this.topContenteditableElement.host)
: null}" : null}"
data-parent-flavour="affine:database"
class="data-view-header-area-rich-text can-link-doc" class="data-view-header-area-rich-text can-link-doc"
></rich-text>`; ></rich-text>`;
} }