diff options
| author | Adam Malczewski <[email protected]> | 2026-06-27 19:34:14 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-27 19:34:14 +0900 |
| commit | 42aaaa8ec0ae4a29188d11bff1ee0f1276bdf94f (patch) | |
| tree | d35a18701e66279ec1b1cc107c45786baaf358d2 /src | |
| parent | 0d68ae9a17cec26848bee6101415ebe042d78dd9 (diff) | |
| download | dispatch-web-42aaaa8ec0ae4a29188d11bff1ee0f1276bdf94f.tar.gz dispatch-web-42aaaa8ec0ae4a29188d11bff1ee0f1276bdf94f.zip | |
style(concurrency): use DaisyUI loading-ring for the queued indicator
The 'queued' (waiting-for-a-concurrency-slot) indicator on the tab + composer
corner used loading-spinner; switch to DaisyUI's loading-ring. The 'active'
(generating) indicator stays loading-dots. typecheck 0/0, 926 tests green,
biome clean, build OK.
Diffstat (limited to 'src')
| -rw-r--r-- | src/features/chat/ui/Composer.svelte | 2 | ||||
| -rw-r--r-- | src/features/tabs/ui.test.ts | 8 | ||||
| -rw-r--r-- | src/features/tabs/ui/TabList.svelte | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/features/chat/ui/Composer.svelte b/src/features/chat/ui/Composer.svelte index 2484225..0327f93 100644 --- a/src/features/chat/ui/Composer.svelte +++ b/src/features/chat/ui/Composer.svelte @@ -152,7 +152,7 @@ {#if status === "queued"} <!-- Waiting for a concurrency slot — a ring (vs the dots of `running`). --> <span - class="loading loading-spinner loading-xs text-primary" + class="loading loading-ring loading-xs text-primary" aria-label="Queued" title="Waiting for a concurrency slot" ></span> diff --git a/src/features/tabs/ui.test.ts b/src/features/tabs/ui.test.ts index 4111c16..0dc5e15 100644 --- a/src/features/tabs/ui.test.ts +++ b/src/features/tabs/ui.test.ts @@ -277,9 +277,9 @@ describe("TabList", () => { }, }); - // c1 is queued → a ring (spinner), labeled "Queued". + // c1 is queued → a ring (DaisyUI `loading-ring`), labeled "Queued". const queuedRing = screen.getByLabelText("Queued"); - expect(queuedRing.className).toContain("loading-spinner"); + expect(queuedRing.className).toContain("loading-ring"); expect(queuedRing.closest('[role="tab"]')).toHaveTextContent("First"); const tabs = screen.getAllByRole("tab"); @@ -288,9 +288,9 @@ describe("TabList", () => { const idleTab = tabs[2]; if (activeTab === undefined || idleTab === undefined) throw new Error("missing tabs"); - // c2 is active → loading dots (NOT a spinner). + // c2 is active → loading dots (NOT a ring). expect(activeTab.querySelector(".loading-dots")).not.toBeNull(); - expect(activeTab.querySelector(".loading-spinner")).toBeNull(); + expect(activeTab.querySelector(".loading-ring")).toBeNull(); // c3 has no status → no spinner at all. expect(idleTab.querySelector(".loading")).toBeNull(); diff --git a/src/features/tabs/ui/TabList.svelte b/src/features/tabs/ui/TabList.svelte index 76e1968..08a3274 100644 --- a/src/features/tabs/ui/TabList.svelte +++ b/src/features/tabs/ui/TabList.svelte @@ -147,7 +147,7 @@ {#if statusFor?.(tab.conversationId) === "queued"} <!-- Waiting for a concurrency slot — a ring (vs the dots of `active`). --> <span - class="loading loading-spinner loading-xs shrink-0 text-primary" + class="loading loading-ring loading-xs shrink-0 text-primary" aria-label="Queued" title="Waiting for a concurrency slot" ></span> |
