diff --git a/public/src/components/common/ConfirmDialog.tsx b/public/src/components/common/ConfirmDialog.tsx index 4eef569..10e3055 100644 --- a/public/src/components/common/ConfirmDialog.tsx +++ b/public/src/components/common/ConfirmDialog.tsx @@ -24,7 +24,7 @@ export function ConfirmDialog({ }; return ( -
+

diff --git a/public/src/components/layout/Layout.tsx b/public/src/components/layout/Layout.tsx index 10a5982..11df2c9 100644 --- a/public/src/components/layout/Layout.tsx +++ b/public/src/components/layout/Layout.tsx @@ -5,9 +5,11 @@ import { useUIStore } from '../../stores/uiStore'; interface LayoutProps { children: ReactNode; + onToggleSidebar?: () => void; + isSidebarOpen?: boolean; } -export function Layout({ children }: LayoutProps) { +export function Layout({ children, onToggleSidebar, isSidebarOpen }: LayoutProps) { const { user, logout } = useAuthStore(); const { darkMode, toggleDarkMode, showToast } = useUIStore(); const navigate = useNavigate(); @@ -28,7 +30,26 @@ export function Layout({ children }: LayoutProps) {
-

ISP Wiremap

+
+ {/* Mobile hamburger button */} + {onToggleSidebar && ( + + )} + {/* Title - hidden on mobile when hamburger is present */} +

ISP Wiremap

+
{user && (
diff --git a/public/src/components/map/ShareDialog.tsx b/public/src/components/map/ShareDialog.tsx index bcded2b..5ca25d1 100644 --- a/public/src/components/map/ShareDialog.tsx +++ b/public/src/components/map/ShareDialog.tsx @@ -130,7 +130,7 @@ export function ShareDialog({ mapId, onClose }: ShareDialogProps) { }; return ( -
+
{/* Header */}
diff --git a/public/src/pages/Dashboard.tsx b/public/src/pages/Dashboard.tsx index 1c0bdbb..5a64d60 100644 --- a/public/src/pages/Dashboard.tsx +++ b/public/src/pages/Dashboard.tsx @@ -34,19 +34,42 @@ export function Dashboard() { const [showShareDialog, setShowShareDialog] = useState(false); const [shareMapId, setShareMapId] = useState(null); const [activeLayer, setActiveLayer] = useState('osm'); + const [isSidebarOpen, setIsSidebarOpen] = useState(false); const handleShareMap = (mapId: string) => { setShareMapId(mapId); setShowShareDialog(true); }; + const handleSelectMap = (mapId: string) => { + setSelectedMapId(mapId); + // Close sidebar on mobile after selecting a map + setIsSidebarOpen(false); + }; + return ( - -
+ setIsSidebarOpen(!isSidebarOpen)} isSidebarOpen={isSidebarOpen}> +
+ {/* Mobile overlay */} + {isSidebarOpen && ( +
setIsSidebarOpen(false)} + /> + )} + {/* Left sidebar with map list and toolbar */} -
+