feat(core): add globalcontext info to mixpanel track (#7681)

This commit is contained in:
EYHN
2024-08-01 09:29:31 +00:00
parent bb767a6cdc
commit 553fbed60f
10 changed files with 126 additions and 74 deletions
@@ -1,9 +1,7 @@
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { mixpanel } from '@affine/core/mixpanel';
import { TelemetryWorkspaceContextService } from '@affine/core/modules/telemetry/services/telemetry';
import { useI18n } from '@affine/i18n';
import { ImportIcon } from '@blocksuite/icons/rc';
import { useService } from '@toeverything/infra';
import type { DocCollection } from '../../shared';
import { MenuItem } from '../app-sidebar';
@@ -12,14 +10,11 @@ import { usePageHelper } from '../blocksuite/block-suite-page-list/utils';
const ImportPage = ({ docCollection }: { docCollection: DocCollection }) => {
const t = useI18n();
const { importFile } = usePageHelper(docCollection);
const telemetry = useService(TelemetryWorkspaceContextService);
const onImportFile = useAsyncCallback(async () => {
const options = await importFile();
const page = telemetry.getPageContext();
if (options.isWorkspaceFile) {
mixpanel.track('WorkspaceCreated', {
page,
segment: 'navigation panel',
module: 'doc list header',
control: 'import button',
@@ -27,7 +22,6 @@ const ImportPage = ({ docCollection }: { docCollection: DocCollection }) => {
});
} else {
mixpanel.track('DocCreated', {
page,
segment: 'navigation panel',
module: 'doc list header',
control: 'import button',
@@ -35,7 +29,7 @@ const ImportPage = ({ docCollection }: { docCollection: DocCollection }) => {
// category
});
}
}, [importFile, telemetry]);
}, [importFile]);
return (
<MenuItem icon={<ImportIcon />} onClick={onImportFile}>
@@ -11,7 +11,6 @@ import {
} from '@affine/core/modules/explorer';
import { ExplorerTags } from '@affine/core/modules/explorer/views/sections/tags';
import { CMDKQuickSearchService } from '@affine/core/modules/quicksearch/services/cmdk';
import { TelemetryWorkspaceContextService } from '@affine/core/modules/telemetry/services/telemetry';
import { pathGenerator } from '@affine/core/shared';
import { apis, events } from '@affine/electron-api';
import { useI18n } from '@affine/i18n';
@@ -91,8 +90,6 @@ export const RootAppSidebar = (): ReactElement => {
});
}, [cmdkQuickSearchService]);
const telemetry = useService(TelemetryWorkspaceContextService);
const allPageActive = currentPath === '/all';
const pageHelper = usePageHelper(currentWorkspace.docCollection);
@@ -105,14 +102,13 @@ export const RootAppSidebar = (): ReactElement => {
page.load();
openPage(currentWorkspaceId, page.id);
mixpanel.track('DocCreated', {
page: telemetry.getPageContext(),
segment: 'navigation panel',
module: 'bottom button',
control: 'new doc button',
category: 'page',
type: 'doc',
});
}, [createPage, currentWorkspaceId, openPage, telemetry]);
}, [createPage, currentWorkspaceId, openPage]);
// Listen to the "New Page" action from the menu
useEffect(() => {