diff --git a/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx b/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx index 080876f6b..5bef4791b 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx @@ -1,18 +1,40 @@ -import React from 'react'; +import React, { useState, useCallback } from 'react'; import { Outlet, Navigate } from 'react-router-dom'; import { useAuth } from '../../context/AuthContext'; import Sidebar from './Sidebar'; export default function AppLayout() { const { token } = useAuth(); + const [sidebarOpen, setSidebarOpen] = useState(false); + const closeSidebar = useCallback(() => setSidebarOpen(false), []); if (!token) return ; return (
- -
- -
+ {sidebarOpen && ( +
+ )} + +
+
+ + Chuva Bot +
+
+ +
+
); } diff --git a/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx b/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx index 26de308c4..871287fae 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx @@ -1,12 +1,13 @@ -import React from 'react'; -import { NavLink, useParams, useNavigate } from 'react-router-dom'; +import React, { useEffect } from 'react'; +import { NavLink, useParams, useNavigate, useLocation } from 'react-router-dom'; import { useAuth } from '../../context/AuthContext'; import { useProject } from '../../context/ProjectContext'; -function NavItem({ to, children }) { +function NavItem({ to, children, onClick }) { return ( `flex items-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors ${ isActive ? 'bg-gray-900 text-white font-medium' : 'text-gray-600 hover:bg-gray-100' @@ -18,11 +19,16 @@ function NavItem({ to, children }) { ); } -export default function Sidebar() { +export default function Sidebar({ open, onClose }) { const { user, logout } = useAuth(); const { project, userRole } = useProject(); const { projectId } = useParams(); const navigate = useNavigate(); + const location = useLocation(); + + useEffect(() => { + onClose(); + }, [location.pathname, onClose]); const handleLogout = () => { logout(); @@ -30,9 +36,23 @@ export default function Sidebar() { }; return ( -