mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-23 00:26:41 +02:00
feat(analytics): add custom event tracking to Context, SkillTree, Planta, Questions
Add app-specific Umami event helpers and integrate tracking into: - Context: 6 events (document create/delete/pin, space create/delete, AI generated) - SkillTree: 3 events (skill create/delete with branch, XP added with level-up) - Planta: 4 events (plant analyzed/created/deleted, plant watered) - Questions: 5 events (question create/delete, research started, collection create/delete) Updates ManaScore analytics from 3/5 to 4/5 for all four apps. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
623ce1f051
commit
12b3c4f0f3
14 changed files with 75 additions and 4 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import type { Document, DocumentType } from '$lib/types';
|
||||
import { ContextEvents } from '@manacore/shared-utils/analytics';
|
||||
import * as docsService from '$lib/services/documents';
|
||||
|
||||
let documents = $state<Document[]>([]);
|
||||
|
|
@ -133,6 +134,7 @@ export const documentsStore = {
|
|||
if (result.data) {
|
||||
documents = [result.data, ...documents];
|
||||
currentDocument = result.data;
|
||||
ContextEvents.documentCreated(type);
|
||||
}
|
||||
return result;
|
||||
} finally {
|
||||
|
|
@ -159,6 +161,7 @@ export const documentsStore = {
|
|||
async delete(id: string) {
|
||||
const result = await docsService.deleteDocument(id);
|
||||
if (result.success) {
|
||||
ContextEvents.documentDeleted();
|
||||
documents = documents.filter((d) => d.id !== id);
|
||||
if (currentDocument?.id === id) {
|
||||
currentDocument = null;
|
||||
|
|
@ -173,6 +176,7 @@ export const documentsStore = {
|
|||
const newPinned = !doc.pinned;
|
||||
const result = await docsService.toggleDocumentPinned(id, newPinned);
|
||||
if (result.success) {
|
||||
ContextEvents.documentPinned(newPinned);
|
||||
documents = documents.map((d) => (d.id === id ? { ...d, pinned: newPinned } : d));
|
||||
if (currentDocument?.id === id) {
|
||||
currentDocument = { ...currentDocument, pinned: newPinned };
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import type { Space } from '$lib/types';
|
||||
import { ContextEvents } from '@manacore/shared-utils/analytics';
|
||||
import * as spacesService from '$lib/services/spaces';
|
||||
|
||||
let spaces = $state<Space[]>([]);
|
||||
|
|
@ -39,6 +40,7 @@ export const spacesStore = {
|
|||
const result = await spacesService.createSpace(userId, name, description);
|
||||
if (result.data) {
|
||||
spaces = [result.data, ...spaces];
|
||||
ContextEvents.spaceCreated();
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
|
@ -66,6 +68,7 @@ export const spacesStore = {
|
|||
const result = await spacesService.deleteSpace(id);
|
||||
if (result.success) {
|
||||
spaces = spaces.filter((s) => s.id !== id);
|
||||
ContextEvents.spaceDeleted();
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue