Skip to content

Commit 2ff5253

Browse files
authored
Merge pull request #55 from No-Country-simulation/PA-161-implementar-sidebar-plataforma-de-usuario
feat: ✨ Add sidebar app
2 parents 902aecd + 5d92d1b commit 2ff5253

File tree

13 files changed

+1569
-573
lines changed

13 files changed

+1569
-573
lines changed
Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
1-
'use client';
1+
"use client";
22

3-
import Sidebar from '@/shared/layout/sidebar/sidebar';
4-
import AppHeader from '@/shared/layout/appheader/header';
5-
import { Toaster } from '@/shared/ui/sonner';
3+
import { SidebarApp } from "@/shared/layout/sidebar/sidebar";
4+
import AppHeader from "@/shared/layout/appheader/header";
5+
import { Toaster } from "@/shared/ui/sonner";
6+
import { SidebarProvider, SidebarTrigger } from "@/shared/ui/sidebar";
67

78
/**
89
* Layout para todas las páginas autenticadas
910
* Se aplica a todas las rutas excepto login y otras públicas
1011
*/
1112
export default function AuthenticatedLayout({ children }) {
1213
return (
13-
<div className='flex min-h-screen'>
14-
{/* Sidebar fijo en el lado izquierdo */}
15-
<Sidebar />
16-
17-
{/* Contenedor principal a la derecha del sidebar */}
18-
<div className='flex-1 flex flex-col'>
19-
<AppHeader />
20-
<main className='flex-1 overflow-auto px-4 pt-4 pb-6 relative'>
21-
{children}
22-
<Toaster />
23-
</main>
24-
</div>
14+
<div className="flex min-h-screen">
15+
<SidebarProvider
16+
style={{
17+
"--sidebar-width": "18rem",
18+
"--sidebar-width-mobile": "16rem",
19+
}}
20+
>
21+
<SidebarApp/>
22+
{/* Contenedor principal a la derecha del sidebar */}
23+
<div className="flex-1 flex flex-col">
24+
<AppHeader>
25+
<SidebarTrigger />
26+
</AppHeader>
27+
<main className="flex-1 overflow-auto px-4 pt-4 pb-6 relative">
28+
{children}
29+
<Toaster />
30+
</main>
31+
</div>
32+
</SidebarProvider>
2533
</div>
2634
);
2735
}

frontend/platform/app/globals.css

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@
130130
--sidebar: #330764;
131131
--sidebar-foreground: oklch(0.985 0.001 106.423);
132132
--sidebar-primary: #330764;
133-
--sidebar-primary-foreground: oklch(0.985 0.001 106.423);
134-
--sidebar-accent: #b8b8d1;
135-
--sidebar-accent-foreground: #330764;
133+
--sidebar-primary-foreground: #f5f5f5;
134+
--sidebar-accent: #5c3983;
135+
--sidebar-accent-foreground: #f5f5f5;
136136
--sidebar-border: #b8b8d1;
137137
--sidebar-ring: oklch(0.709 0.01 56.259);
138138
--sidebar-dark-purple: #1e0339; /* Violeta más oscuro para iconos */

frontend/platform/features/auth/components/UserMenu.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ function UserMenu() {
7171

7272
return (
7373
// Solo mostrar en vista de escritorio
74-
<div className='hidden md:block'>
74+
<div>
7575
<DropdownMenu open={open} onOpenChange={setOpen}>
7676
<DropdownMenuTrigger asChild>
7777
<button className='flex items-center space-x-2 rounded-full focus:outline-none'>

frontend/platform/hooks/use-mobile.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import * as React from "react"
2+
3+
const MOBILE_BREAKPOINT = 768
4+
5+
export function useIsMobile() {
6+
const [isMobile, setIsMobile] = React.useState(undefined)
7+
8+
React.useEffect(() => {
9+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
10+
const onChange = () => {
11+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
12+
}
13+
mql.addEventListener("change", onChange)
14+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
15+
return () => mql.removeEventListener("change", onChange);
16+
}, [])
17+
18+
return !!isMobile
19+
}

0 commit comments

Comments
 (0)