| 40 | |
| 41 | // Set up event listeners for session updates |
| 42 | const handleSessionCreated = (newSession: Session) => { |
| 43 | console.log('[ProjectTreeView] Session created:', newSession.id, 'projectId:', newSession.projectId); |
| 44 | |
| 45 | // Add the new session to the appropriate project without reloading everything |
| 46 | setProjectsWithSessions(prevProjects => { |
| 47 | const updatedProjects = prevProjects.map(project => { |
| 48 | if (project.id === newSession.projectId) { |
| 49 | console.log('[ProjectTreeView] Adding session to project:', project.id, project.name); |
| 50 | // Add the new session to this project |
| 51 | return { |
| 52 | ...project, |
| 53 | sessions: [...project.sessions, newSession] |
| 54 | }; |
| 55 | } |
| 56 | return project; |
| 57 | }); |
| 58 | |
| 59 | // If no project was found, log a warning |
| 60 | if (!updatedProjects.some(p => p.id === newSession.projectId)) { |
| 61 | console.warn('[ProjectTreeView] No matching project found for session projectId:', newSession.projectId); |
| 62 | console.log('[ProjectTreeView] Available projects:', prevProjects.map(p => ({ id: p.id, name: p.name }))); |
| 63 | } |
| 64 | |
| 65 | return updatedProjects; |
| 66 | }); |
| 67 | |
| 68 | // Auto-expand the project that contains the new session |
| 69 | if (newSession.projectId) { |
| 70 | setExpandedProjects(prev => new Set([...prev, newSession.projectId!])); |
| 71 | } |
| 72 | }; |
| 73 | |
| 74 | const handleSessionUpdated = (updatedSession: Session) => { |
| 75 | // Only reload if the create dialog is not open |