diff --git a/frontend/src/components/AppLayout.tsx b/frontend/src/components/AppLayout.tsx index 688d4a7..5b2235b 100644 --- a/frontend/src/components/AppLayout.tsx +++ b/frontend/src/components/AppLayout.tsx @@ -1,23 +1,60 @@ -import React, { useState } from 'react'; -import { Layout, theme } from 'antd'; -import Sidebar from './Sidebar'; +import React, { useState, useEffect } from 'react'; +import { Layout, Drawer, theme } from 'antd'; +import Sidebar, { SidebarMenu } from './Sidebar'; import HeaderBar from './Header'; +import useIsMobile from '../hooks/useIsMobile'; const { Content } = Layout; const AppLayout: React.FC<{ children: React.ReactNode }> = ({ children }) => { const [collapsed, setCollapsed] = useState(false); - const { token: { colorBgContainer, borderRadiusLG } } = theme.useToken(); + const [drawerOpen, setDrawerOpen] = useState(false); + const isMobile = useIsMobile(); + const { + token: { colorBgContainer, borderRadiusLG }, + } = theme.useToken(); + + // Close drawer when switching to desktop + useEffect(() => { + if (!isMobile) setDrawerOpen(false); + }, [isMobile]); return ( - - - - + {!isMobile && } + + + setDrawerOpen(true)} + /> + {children} + + setDrawerOpen(false)} + width={260} + styles={{ body: { padding: 0 } }} + title={null} + closable={false} + > + setDrawerOpen(false)} /> + ); };