+
{user?.name?.[0]?.toUpperCase() || user?.email?.[0]?.toUpperCase() || "?"}
@@ -90,7 +144,7 @@ export function DashboardLayout() {
{/* Main Content */}
-
+
diff --git a/frontend/src/pages/ChatPage.tsx b/frontend/src/pages/ChatPage.tsx
index 5dca253..d1e6140 100644
--- a/frontend/src/pages/ChatPage.tsx
+++ b/frontend/src/pages/ChatPage.tsx
@@ -22,22 +22,37 @@ function ThreadList({
activeThread,
onSelect,
onCreate,
+ onClose,
}: {
threads: ChatThread[];
activeThread: string | null;
onSelect: (key: string) => void;
onCreate: () => void;
+ onClose?: () => void;
}) {
return (
-
+
Threads
-
+
+
+ {onClose && (
+
+ )}
+
{threads.length === 0 ? (
@@ -401,12 +416,23 @@ export function ChatPage() {
);
}
+ const [showThreads, setShowThreads] = useState(false);
+
return (
-
+
{/* Page Header */}
-
-
+
+
+
Chat
@@ -421,13 +447,34 @@ export function ChatPage() {
{/* Chat body */}
-
-
setActiveThread(key)}
- onCreate={handleCreateThread}
- />
+
+ {/* Thread list - overlay on mobile, sidebar on desktop */}
+
+ {showThreads && (
+
setShowThreads(false)}
+ />
+ )}
+
+ {
+ setActiveThread(key);
+ setShowThreads(false);
+ }}
+ onCreate={() => {
+ handleCreateThread();
+ setShowThreads(false);
+ }}
+ onClose={() => setShowThreads(false)}
+ />
+
+
{activeThread ? (
) : (
-
- Select or create a thread
+
+
+
💬
+
Select or create a thread
+
+
)}
diff --git a/frontend/src/pages/QueuePage.tsx b/frontend/src/pages/QueuePage.tsx
index 41c791f..77bc6ee 100644
--- a/frontend/src/pages/QueuePage.tsx
+++ b/frontend/src/pages/QueuePage.tsx
@@ -65,17 +65,17 @@ export function QueuePage() {
return (