feat(core): track for calendar integration (#12378)

This commit is contained in:
CatsJuice
2025-05-23 10:01:14 +00:00
parent fe99e51d5b
commit 262f1a47a4
4 changed files with 21 additions and 2 deletions

View File

@@ -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({

View File

@@ -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: {

View File

@@ -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);
}

View File

@@ -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<T extends Record<string, any>> = {
type: string;
control: 'Readwise Card' | 'Readwise settings' | 'Readwise import list';
control:
| 'Readwise Card'
| 'Readwise settings'
| 'Readwise import list'
| 'Calendar Setting';
} & T;
type RecordingEventArgs = {