From cfb5dd53b132c3c7e27fdf1043853ee634ce2a66 Mon Sep 17 00:00:00 2001
From: Coracle Bot <329+coracle-bot@noreply.coracle.social>
Date: Mon, 7 Sep 2026 20:39:58 +0000
Subject: [PATCH] Pair the chat header plus button with a popover overflow menu
(#427)
---
e2e/specs/dms.spec.ts | 2 +-
src/app/components/ChatMenu.svelte | 55 ++++++++++++++++--------------
src/routes/chat/+layout.svelte | 21 ++++++------
src/routes/chat/+page.svelte | 8 ++---
4 files changed, 44 insertions(+), 42 deletions(-)
diff --git a/e2e/specs/dms.spec.ts b/e2e/specs/dms.spec.ts
index d19d5cbf..e476091e 100644
--- a/e2e/specs/dms.spec.ts
+++ b/e2e/specs/dms.spec.ts
@@ -474,7 +474,7 @@ test("US-034 track and clear unread conversations", async ({seed, as}) => {
await expect(unreadDots(bobChat)).toHaveCount(0)
// Mark all read clears what is left of them in one go
- await alice.locator(".secondary-nav__header").getByRole("button").click()
+ await alice.locator(".secondary-nav__header").getByRole("button", {name: "Chat options"}).click()
await alice.getByRole("button", {name: "Mark all read"}).click()
await expect(unreadDots(chatList(alice))).toHaveCount(0)
diff --git a/src/app/components/ChatMenu.svelte b/src/app/components/ChatMenu.svelte
index 806f6438..78b8fd90 100644
--- a/src/app/components/ChatMenu.svelte
+++ b/src/app/components/ChatMenu.svelte
@@ -1,43 +1,48 @@
-
-
-
-
+
-
-
+
+
+
diff --git a/src/routes/chat/+layout.svelte b/src/routes/chat/+layout.svelte
index 00da7ee4..94b91e5f 100644
--- a/src/routes/chat/+layout.svelte
+++ b/src/routes/chat/+layout.svelte
@@ -3,12 +3,13 @@
import {onMount} from "svelte"
import {page} from "$app/stores"
import {sleep} from "@welshman/lib"
- import MenuDots from "@assets/icons/menu-dots.svg?dataurl"
+ import Add from "@assets/icons/add.svg?dataurl"
import ChatSquarePlus from "@assets/icons/chat-square-plus.svg?dataurl"
import Magnifier from "@assets/icons/magnifier.svg?dataurl"
import Icon from "@lib/components/Icon.svelte"
import Page from "@lib/components/Page.svelte"
import Button from "@lib/components/Button.svelte"
+ import MenuButton from "@lib/components/MenuButton.svelte"
import Spinner from "@lib/components/Spinner.svelte"
import FAB from "@lib/components/FAB.svelte"
import SecondaryNav from "@lib/components/SecondaryNav.svelte"
@@ -27,8 +28,6 @@
const {children}: Props = $props()
- const openMenu = () => pushModal(ChatMenu)
-
const startChat = () => pushModal(ChatStart)
let term = $state("")
@@ -46,14 +45,16 @@
Chats
-
+
+
+
+
-
-
+
{/snippet}
{#snippet content()}