diff --git a/frontend/src/components/DashboardLayout.tsx b/frontend/src/components/DashboardLayout.tsx index cfa51e4..0566470 100644 --- a/frontend/src/components/DashboardLayout.tsx +++ b/frontend/src/components/DashboardLayout.tsx @@ -1,3 +1,4 @@ +import { useState } from "react"; import { NavLink, Outlet } from "react-router-dom"; import { useCurrentUser } from "../hooks/useCurrentUser"; import { signOut } from "../lib/auth-client"; @@ -9,24 +10,75 @@ const navItems = [ export function DashboardLayout() { const { user, isAdmin } = useCurrentUser(); + const [sidebarOpen, setSidebarOpen] = useState(false); const handleLogout = async () => { await signOut(); window.location.reload(); }; + const closeSidebar = () => setSidebarOpen(false); + return (
+ {/* Mobile header */} +
+ +
+ 🔨 +

Hammer

+
+
+ + {/* Overlay for mobile */} + {sidebarOpen && ( +
+ )} + {/* Sidebar */} -
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 (
{/* Page Header */} -
-
+
+
-

Task Queue

-

Manage what Hammer is working on

+

Task Queue

+

Manage what Hammer is working on

@@ -86,7 +86,7 @@ export function QueuePage() { onCreate={handleCreate} /> -
+
{loading && (
Loading tasks...
)}