diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f1fae1..d2df3e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog - project.linkedcorp.net +## [2.4.0] - 2026-09-22 +### Fixed +- Menú lateral en celular: antes quedaba siempre visible fijo, ocupando gran parte de una + pantalla angosta. Ahora arranca oculto, se abre como un panel superpuesto (con fondo oscuro + detrás) desde el botón de hamburguesa, y se cierra solo al elegir una opción o tocar afuera. + El escritorio no cambia — sigue con el sidebar fijo y el modo compacto de siempre. + ## [2.3.0] - 2026-09-22 ### Added - Al iniciar sesión, si sos superadmin y hay una actualización pendiente, aparece un aviso con diff --git a/VERSION b/VERSION index 276cbf9..197c4d5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.3.0 +2.4.0 diff --git a/backend/package.json b/backend/package.json index 66cde7e..53fab50 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "project-linkedcorp-backend", - "version": "2.3.0", + "version": "2.4.0", "private": true, "type": "module", "main": "src/server.js", diff --git a/frontend/package.json b/frontend/package.json index add4c01..c3b6267 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "project-linkedcorp-frontend", "private": true, - "version": "2.3.0", + "version": "2.4.0", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/app/AppShell.jsx b/frontend/src/app/AppShell.jsx index e215e85..a77e586 100644 --- a/frontend/src/app/AppShell.jsx +++ b/frontend/src/app/AppShell.jsx @@ -16,8 +16,11 @@ import { getUpdateStatus } from '../services/updater.js'; const EMPTY_PASSWORD_FORM = { currentPassword: '', newPassword: '', confirmPassword: '' }; +const MOBILE_BREAKPOINT = 768; + export default function AppShell() { const [navMode, setNavMode] = useState('expanded'); + const [mobileNavOpen, setMobileNavOpen] = useState(false); const { user, logout } = useAuth(); const { t, theme, setTheme, lang, setLang, pushToast, openDialog } = useUi(); const navigate = useNavigate(); @@ -54,8 +57,19 @@ export default function AppShell() { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + // En celular el boton de hamburguesa abre/cierra el drawer superpuesto (mobileNavOpen); en + // escritorio, sigue alternando el riel expandido/compacto de siempre -- son dos estados + // independientes para no tocar el comportamiento de escritorio ya existente. function toggleNav() { - setNavMode((m) => (m === 'expanded' ? 'compact' : 'expanded')); + if (window.innerWidth <= MOBILE_BREAKPOINT) { + setMobileNavOpen((v) => !v); + } else { + setNavMode((m) => (m === 'expanded' ? 'compact' : 'expanded')); + } + } + + function closeMobileNav() { + setMobileNavOpen(false); } async function handleNotificationClick(notification) { @@ -92,7 +106,8 @@ export default function AppShell() { return (