summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-27 19:34:14 +0900
committerAdam Malczewski <[email protected]>2026-06-27 19:34:14 +0900
commit42aaaa8ec0ae4a29188d11bff1ee0f1276bdf94f (patch)
treed35a18701e66279ec1b1cc107c45786baaf358d2 /src
parent0d68ae9a17cec26848bee6101415ebe042d78dd9 (diff)
downloaddispatch-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.svelte2
-rw-r--r--src/features/tabs/ui.test.ts8
-rw-r--r--src/features/tabs/ui/TabList.svelte2
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>