diff --git a/frontend/src/lib/components/layout/ConversationList.svelte b/frontend/src/lib/components/layout/ConversationList.svelte index d7811a3..29b5fdf 100644 --- a/frontend/src/lib/components/layout/ConversationList.svelte +++ b/frontend/src/lib/components/layout/ConversationList.svelte @@ -6,6 +6,7 @@ import { conversationsState, chatState, projectsState } from '$lib/stores'; import ConversationItem from './ConversationItem.svelte'; import ProjectFolder from './ProjectFolder.svelte'; + import type { Conversation } from '$lib/types/conversation.js'; interface Props { onEditProject?: (projectId: string) => void; @@ -25,6 +26,15 @@ const hasAnyContent = $derived.by(() => { return projectsState.projects.length > 0 || ungroupedConversations.length > 0; }); + + // Derived: Map of project ID to conversations (cached to avoid repeated calls) + const projectConversationsMap = $derived.by(() => { + const map = new Map(); + for (const project of projectsState.projects) { + map.set(project.id, conversationsState.forProject(project.id)); + } + return map; + });
@@ -70,7 +80,7 @@ {#each projectsState.sortedProjects as project (project.id)} {/each}