From 262f1a47a4d4d8925ae167a9909d99eca53579a4 Mon Sep 17 00:00:00 2001 From: CatsJuice Date: Fri, 23 May 2025 10:01:14 +0000 Subject: [PATCH] feat(core): track for calendar integration (#12378) --- .../integration/calendar/setting-panel.tsx | 6 ++++++ .../integration/calendar/subscription-setting.tsx | 5 +++++ .../detail-page/tabs/journal/calendar-events.tsx | 2 ++ packages/frontend/track/src/events.ts | 10 ++++++++-- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/setting-panel.tsx b/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/setting-panel.tsx index 30b22f221..42e933ae7 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/setting-panel.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/setting-panel.tsx @@ -1,6 +1,7 @@ import { Button, Input, Modal, notify } from '@affine/component'; import { IntegrationService } from '@affine/core/modules/integration'; import { useI18n } from '@affine/i18n'; +import track from '@affine/track'; import { PlusIcon, TodayIcon } from '@blocksuite/icons/rc'; import { useLiveData, useService } from '@toeverything/infra'; import { useCallback, useState } from 'react'; @@ -72,6 +73,11 @@ const AddSubscription = () => { .then(() => { setOpen(false); setUrl(''); + track.$.settingsPanel.integrationList.connectIntegration({ + type: 'calendar', + control: 'Calendar Setting', + result: 'success', + }); }) .catch(() => { notify.error({ diff --git a/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/subscription-setting.tsx b/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/subscription-setting.tsx index acd17fea7..2b7ebcc58 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/subscription-setting.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/workspace-setting/integration/calendar/subscription-setting.tsx @@ -4,6 +4,7 @@ import { IntegrationService, } from '@affine/core/modules/integration'; import { useI18n } from '@affine/i18n'; +import track from '@affine/track'; import { useLiveData, useService } from '@toeverything/infra'; import { useCallback, useMemo, useState } from 'react'; @@ -114,6 +115,10 @@ const UnsubscribeButton = ({ url, name }: { url: string; name: string }) => { }), onConfirm: () => { calendar.deleteSubscription(url); + track.$.settingsPanel.integrationList.disconnectIntegration({ + type: 'calendar', + control: 'Calendar Setting', + }); }, confirmText: t['com.affine.integration.calendar.unsubscribe'](), confirmButtonOptions: { diff --git a/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal/calendar-events.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal/calendar-events.tsx index e615b6c3f..2ba9d18aa 100644 --- a/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal/calendar-events.tsx +++ b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal/calendar-events.tsx @@ -10,6 +10,7 @@ import { JournalService } from '@affine/core/modules/journal'; import { GuardService } from '@affine/core/modules/permissions'; import { WorkspaceService } from '@affine/core/modules/workspace'; import { useI18n } from '@affine/i18n'; +import track from '@affine/track'; import { FullDayIcon, PeriodIcon, PlusIcon } from '@blocksuite/icons/rc'; import { useLiveData, useService } from '@toeverything/infra'; import { cssVarV2 } from '@toeverything/theme/v2'; @@ -94,6 +95,7 @@ const CalendarEventRenderer = ({ event }: { event: CalendarEvent }) => { await docsService.changeDocTitle(newDoc.id, title); await docsService.addLinkedDoc(doc.id, newDoc.id); } + track.doc.sidepanel.journal.createCalendarDocEvent(); } finally { setLoading(false); } diff --git a/packages/frontend/track/src/events.ts b/packages/frontend/track/src/events.ts index 400055e2a..8fd831cfc 100644 --- a/packages/frontend/track/src/events.ts +++ b/packages/frontend/track/src/events.ts @@ -163,7 +163,8 @@ type IntegrationEvents = | 'selectIntegrationImport' | 'confirmIntegrationImport' | 'abortIntegrationImport' - | 'completeIntegrationImport'; + | 'completeIntegrationImport' + | 'createCalendarDocEvent'; // END SECTION // SECTION: journal @@ -455,6 +456,7 @@ interface PageEvents extends PageDivision { }; sidepanel: { property: ['addProperty', 'editPropertyMeta']; + journal: ['createCalendarDocEvent']; }; biDirectionalLinksPanel: { $: ['toggle']; @@ -576,7 +578,11 @@ type ImportArgs = { }; type IntegrationArgs> = { type: string; - control: 'Readwise Card' | 'Readwise settings' | 'Readwise import list'; + control: + | 'Readwise Card' + | 'Readwise settings' + | 'Readwise import list' + | 'Calendar Setting'; } & T; type RecordingEventArgs = {