UserHome.tsx Mindmap Operations Sequence Diagram
This diagram shows how UserHome.tsx retrieves, deletes, and restores mindmaps, including all interactions with IndexedDB and the backend API.
Sequence Diagram
Summary
| Operation | Flow |
|---|---|
| Retrieve | IndexedDB first (fast) → Server fetch if online → Merge (respecting pending syncs) → Re-render from IndexedDB |
| Delete | Optimistic UI → Delete nodes + map from IndexedDB → Queue MAP_DELETE → SyncManager sends to backend (soft delete) |
| Batch Delete | Same as single delete, but parallel for each selected ID |
| Restore | api.restoreMap(id) exists but isn't used in UserHome.tsx — handled by a separate Trash component |
Key Files
- [UserHome.tsx](file:///Users/sunny/workspace/projects/kemma/apps/web-client/src/modules/dashboard/pages/UserHome.tsx) - Dashboard page
- [db.ts](file:///Users/sunny/workspace/projects/kemma/apps/web-client/src/modules/studio/services/db.ts) - IndexedDB wrapper
- [persistence.ts](file:///Users/sunny/workspace/projects/kemma/apps/web-client/src/modules/studio/services/persistence.ts) - Persistence service
- [sync-manager.ts](file:///Users/sunny/workspace/projects/kemma/apps/web-client/src/modules/studio/services/sync-manager.ts) - Background sync manager
- [client.ts](file:///Users/sunny/workspace/projects/kemma/apps/web-client/src/shared/api/client.ts) - API client