From 565217724f74d3303092c522d28f74f35132df3b Mon Sep 17 00:00:00 2001
From: Adam Malczewski <github@tradam.dev>
Date: Sat, 27 Jun 2026 23:13:31 +0900
Subject: feat(workspace-active-indicator): show loading dots on workspace
 cards with active chats

---
 src/features/workspaces/ui/WorkspacesHome.svelte | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

(limited to 'src/features/workspaces/ui/WorkspacesHome.svelte')

diff --git a/src/features/workspaces/ui/WorkspacesHome.svelte b/src/features/workspaces/ui/WorkspacesHome.svelte
index 02e92b4..d97eab7 100644
--- a/src/features/workspaces/ui/WorkspacesHome.svelte
+++ b/src/features/workspaces/ui/WorkspacesHome.svelte
@@ -9,10 +9,17 @@
     store,
     onNavigate,
     computers,
+    hasActive,
   }: {
     store: WorkspaceStore;
     onNavigate: (path: string) => void;
     computers: readonly ComputerEntry[];
+    /**
+     * Optional port forwarded to each {@link WorkspaceCard}: whether the
+     * workspace has at least one active (generating / queued) conversation.
+     * Wired by the composition root to the app store. Absent → no indicator.
+     */
+    hasActive?: (workspaceId: string) => boolean;
   } = $props();
 
   onMount(() => {
@@ -89,7 +96,13 @@
     {:else}
       <ul class="flex flex-col gap-2">
         {#each store.list as ws (ws.id)}
-          <WorkspaceCard {ws} {store} {onNavigate} {computers} />
+          <WorkspaceCard
+            {ws}
+            {store}
+            {onNavigate}
+            {computers}
+            {...(hasActive ? { hasActive } : {})}
+          />
         {/each}
       </ul>
     {/if}
-- 
cgit v1.2.3

