From dd477d5fda29b8598e3cf333200e6159bed8337b Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 23 Mar 2026 09:27:30 +0100 Subject: [PATCH] feat(analytics): expand umami tracking in todo, calendar, and contacts apps Todo: - Track projectCreated, projectDeleted, labelCreated - Track taskUncompleted - Track quickAddUsed via QuickInputBar Calendar: - Track eventUpdated, eventDeleted - Track calendarCreated, calendarDeleted Contacts: - Track contactUpdated, contactDeleted, contactFavorited, contactArchived - Track searchPerformed in SearchModal - Track contactExported in ExportModal - Track contactImported for both Google and file (vCard/CSV) imports Also extends analytics event helpers with new event types. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../web/src/lib/stores/calendars.svelte.ts | 3 +++ .../apps/web/src/lib/stores/events.svelte.ts | 2 ++ .../web/src/lib/components/SearchModal.svelte | 2 ++ .../lib/components/export/ExportModal.svelte | 2 ++ .../lib/components/import/GoogleImport.svelte | 2 ++ .../apps/web/src/lib/stores/contacts.svelte.ts | 4 ++++ .../web/src/routes/(app)/data/+page.svelte | 3 +++ .../apps/web/src/lib/stores/labels.svelte.ts | 2 ++ .../apps/web/src/lib/stores/projects.svelte.ts | 3 +++ .../apps/web/src/lib/stores/tasks.svelte.ts | 1 + .../apps/web/src/routes/(app)/+layout.svelte | 2 ++ packages/shared-utils/src/analytics.ts | 18 +++++++++++++----- 12 files changed, 39 insertions(+), 5 deletions(-) diff --git a/apps/calendar/apps/web/src/lib/stores/calendars.svelte.ts b/apps/calendar/apps/web/src/lib/stores/calendars.svelte.ts index 5d9958fb1..e954dbe5b 100644 --- a/apps/calendar/apps/web/src/lib/stores/calendars.svelte.ts +++ b/apps/calendar/apps/web/src/lib/stores/calendars.svelte.ts @@ -8,6 +8,7 @@ import * as api from '$lib/api/calendars'; import { BIRTHDAY_CALENDAR } from '$lib/api/birthdays'; import { settingsStore } from './settings.svelte'; import { authStore } from './auth.svelte'; +import { CalendarEvents } from '@manacore/shared-utils/analytics'; // Guest calendar for unauthenticated users const GUEST_CALENDAR: Calendar = { @@ -128,6 +129,7 @@ export const calendarsStore = { if (result.data) { calendars = [...calendars, result.data]; + CalendarEvents.calendarCreated(); } return result; @@ -154,6 +156,7 @@ export const calendarsStore = { if (!result.error) { calendars = getCalendarsArray().filter((c) => c.id !== id); + CalendarEvents.calendarDeleted(); } return result; diff --git a/apps/calendar/apps/web/src/lib/stores/events.svelte.ts b/apps/calendar/apps/web/src/lib/stores/events.svelte.ts index 0336e03b4..b94168578 100644 --- a/apps/calendar/apps/web/src/lib/stores/events.svelte.ts +++ b/apps/calendar/apps/web/src/lib/stores/events.svelte.ts @@ -185,6 +185,7 @@ export const eventsStore = { toastStore.error(`Termin konnte nicht aktualisiert werden: ${result.error.message}`); } else if (result.data) { events = events.map((e) => (e.id === id ? result.data! : e)); + CalendarEvents.eventUpdated(); } return result; @@ -207,6 +208,7 @@ export const eventsStore = { } toastStore.error(`Termin konnte nicht gelöscht werden: ${result.error.message}`); } else { + CalendarEvents.eventDeleted(); toastStore.success('Termin gelöscht'); } diff --git a/apps/contacts/apps/web/src/lib/components/SearchModal.svelte b/apps/contacts/apps/web/src/lib/components/SearchModal.svelte index cea269e12..d88871e87 100644 --- a/apps/contacts/apps/web/src/lib/components/SearchModal.svelte +++ b/apps/contacts/apps/web/src/lib/components/SearchModal.svelte @@ -2,6 +2,7 @@ import { goto } from '$app/navigation'; import { contactsApi, type Contact } from '$lib/api/contacts'; import { newContactModalStore } from '$lib/stores/new-contact-modal.svelte'; + import { ContactsEvents } from '@manacore/shared-utils/analytics'; interface Props { open: boolean; @@ -47,6 +48,7 @@ }); results = response.contacts || []; selectedIndex = 0; + ContactsEvents.searchPerformed(); } catch (e) { console.error('Search error:', e); results = []; diff --git a/apps/contacts/apps/web/src/lib/components/export/ExportModal.svelte b/apps/contacts/apps/web/src/lib/components/export/ExportModal.svelte index 62edc7ade..113054c56 100644 --- a/apps/contacts/apps/web/src/lib/components/export/ExportModal.svelte +++ b/apps/contacts/apps/web/src/lib/components/export/ExportModal.svelte @@ -1,6 +1,7 @@