From a06f09ca2a546b05bb833b997ecf36456f18f49b Mon Sep 17 00:00:00 2001 From: Arturo Gomez Date: Thu, 30 Apr 2026 15:02:40 -0600 Subject: [PATCH 1/2] =?UTF-8?q?feat(frontend):=20dise=C3=B1o=20responsivo?= =?UTF-8?q?=20para=20m=C3=B3vil=20y=20tablet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/Layout/AppLayout.jsx | 32 +++++++++++--- .../src/components/Layout/Sidebar.jsx | 32 +++++++++++--- .../components/dashboard/WorkloadTable.jsx | 4 +- .../src/components/members/MemberList.jsx | 10 ++--- .../src/components/sprints/SprintList.jsx | 4 +- .../src/components/tasks/KanbanBoard.jsx | 44 +++++++++++++++++++ .../src/components/tasks/KanbanColumn.jsx | 10 ++--- .../src/components/tasks/TaskDetail.jsx | 8 ++-- .../src/components/tasks/TaskForm.jsx | 2 +- .../src/components/tasks/TaskTable.jsx | 16 +++---- .../main/frontend/src/hooks/useIsMobile.js | 11 +++++ .../main/frontend/src/pages/DashboardPage.jsx | 20 ++++----- .../src/main/frontend/src/pages/TasksPage.jsx | 6 +-- 13 files changed, 148 insertions(+), 51 deletions(-) create mode 100644 MtdrSpring/backend/src/main/frontend/src/hooks/useIsMobile.js 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 ( -