@@ -38,83 +38,96 @@ export default function BrandDashboardLayout({
3838 { name : "Overview" , href : "/brand-dashboard" , icon : LayoutDashboard } ,
3939 { name : "Requests" , href : "/brand-dashboard/requests" , icon : Users , badge : counts . pendingRequestsCount > 0 ? counts . pendingRequestsCount . toString ( ) : undefined } ,
4040 { name : "Bookings" , href : "/brand-dashboard/bookings" , icon : Briefcase } ,
41- { name : "Messages" , href : "/brand-dashboard/messages" , icon : MessageSquare , badge : counts . unreadMessagesCount > 0 ? counts . unreadMessagesCount . toString ( ) : undefined , badgeColor : "bg-rose-100 text-rose-600 " } ,
41+ { name : "Messages" , href : "/brand-dashboard/messages" , icon : MessageSquare , badge : counts . unreadMessagesCount > 0 ? counts . unreadMessagesCount . toString ( ) : undefined , badgeColor : "bg-rose-500 text-white shadow-lg shadow- rose-200 " } ,
4242 { name : "Calendar" , href : "/brand-dashboard/calendar" , icon : Calendar } ,
4343 { name : "Transactions" , href : "/brand-dashboard/transactions" , icon : ArrowLeftRight } ,
4444 ] ;
4545
4646 return (
4747 < RoleGuard allowedRoles = { [ "BRAND" ] } >
48- < div className = "flex h-screen bg-[#F1F5F9 ] overflow-hidden" >
48+ < div className = "flex h-[100dvh] bg-[#F8FAFC ] overflow-hidden font-sans " >
4949
5050 { /* Mobile Sidebar Overlay */ }
5151 { isSidebarOpen && (
5252 < div
53- className = "fixed inset-0 bg-black/20 z-40 lg:hidden"
53+ className = "fixed inset-0 bg-slate-900/40 backdrop-blur-sm z-40 lg:hidden transition-all duration-300 "
5454 onClick = { ( ) => setIsSidebarOpen ( false ) }
5555 />
5656 ) }
5757
5858 { /* Sidebar */ }
59- < aside className = { `fixed lg:static inset-y-0 left-0 w-64 bg-white border-r border-gray -100 flex flex-col py-6 shrink-0 transition-transform duration-300 z-50 lg:translate-x-0 ${ isSidebarOpen ? "translate-x-0" : "-translate-x-full" } ` } >
60- < div className = "flex items-center justify-between px-6 mb-10" >
61- < div className = "flex items-center gap-3" >
62- < div className = "w-8 h-8 rounded-lg overflow-hidden shrink-0 flex items-center justify-center bg-gray -50 border border-gray-200 " >
63- < Image src = "/favicon.ico" alt = "Noillin" width = { 20 } height = { 20 } className = "object-contain" />
59+ < aside className = { `fixed lg:static inset-y-0 left-0 w-72 bg-white border-r border-slate -100 flex flex-col py-6 shrink-0 transition-transform duration-300 ease-in-out z-50 shadow-2xl lg:shadow-none lg:translate-x-0 ${ isSidebarOpen ? "translate-x-0" : "-translate-x-full" } ` } >
60+ < div className = "flex items-center justify-between px-8 mb-10" >
61+ < div className = "flex items-center gap-3 group cursor-pointer " >
62+ < div className = "w-9 h-9 rounded-xl overflow-hidden shrink-0 flex items-center justify-center bg-emerald -50 border border-emerald-100 group-hover:shadow-md group-hover:shadow-emerald-100 transition-all " >
63+ < Image src = "/favicon.ico" alt = "Noillin" width = { 22 } height = { 22 } className = "object-contain" />
6464 </ div >
65- < span className = "font-bold text-gray -900 text-lg tracking-tight" > Noillin</ span >
65+ < span className = "font-black text-slate -900 text-xl tracking-tight" > Noillin</ span >
6666 </ div >
67- < button className = "lg:hidden text-gray-500 " onClick = { ( ) => setIsSidebarOpen ( false ) } >
68- < X className = "w-6 h-6 " />
67+ < button className = "lg:hidden p-2 rounded-lg text-slate-400 hover:bg-slate-50 hover:text-slate-600 transition-colors " onClick = { ( ) => setIsSidebarOpen ( false ) } >
68+ < X className = "w-5 h-5 " />
6969 </ button >
7070 </ div >
7171
72- < nav className = "flex flex-col gap-1 flex-1 px-4" >
72+ < div className = "px-8 mb-4" >
73+ < p className = "text-[10px] font-black text-slate-400 uppercase tracking-widest" > Main Menu</ p >
74+ </ div >
75+
76+ < nav className = "flex flex-col gap-1.5 flex-1 px-4" >
7377 { navItems . map ( ( item ) => {
7478 const isActive = pathname === item . href ;
7579 const Icon = item . icon ;
7680 return (
7781 < Link
7882 key = { item . name }
7983 href = { item . href }
80- className = { `flex items-center justify-between px-3 py-2.5 rounded-xl transition-colors ${ isActive ? "bg-emerald-50 text-emerald-600 font-medium" : "text-gray-500 hover:bg-gray-50 hover:text-gray-900" } ` }
84+ onClick = { ( ) => setIsSidebarOpen ( false ) }
85+ className = { `relative flex items-center justify-between px-4 py-3.5 rounded-2xl transition-all duration-200 group overflow-hidden ${ isActive ? "bg-emerald-500 text-white shadow-xl shadow-emerald-500/20" : "text-slate-500 hover:bg-slate-50 hover:text-slate-900" } ` }
8186 >
82- < div className = "flex items-center gap-3" >
83- < Icon className = "w-5 h-5" />
84- < span className = "text-sm" > { item . name } </ span >
87+ { isActive && (
88+ < div className = "absolute inset-0 bg-gradient-to-r from-emerald-400/0 via-white/10 to-emerald-400/0 translate-x-[-100%] group-hover:translate-x-[100%] transition-transform duration-1000" />
89+ ) }
90+ < div className = "flex items-center gap-3.5 relative z-10" >
91+ < Icon className = { `w-5 h-5 ${ isActive ? "text-white" : "text-slate-400 group-hover:text-emerald-500" } transition-colors` } />
92+ < span className = { `text-[14px] ${ isActive ? "font-bold" : "font-semibold" } ` } > { item . name } </ span >
8593 </ div >
8694 { item . badge && (
87- < span className = { `${ item . badgeColor || "bg-emerald-100 text-emerald-600" } text-xs font-bold px-2 py-0.5 rounded-full` } >
95+ < span className = { `relative z-10 ${ item . badgeColor || ( isActive ? "bg-white/20 text-white" : "bg- emerald-100 text-emerald-600") } text-[10px] font-black px-2.5 py-0.5 rounded-full` } >
8896 { item . badge }
8997 </ span >
9098 ) }
9199 </ Link >
92100 ) ;
93101 } ) }
94102 </ nav >
103+
95104 </ aside >
96105
97106 { /* Main Header & Content Area */ }
98- < main className = "flex-1 flex flex-col min-w-0 h-screen overflow-hidden" >
107+ < main className = "flex-1 flex flex-col min-w-0 h-[100dvh] overflow-hidden bg-slate-50/50 " >
99108 { /* Dashboard Header */ }
100109 < DashboardHeader
101110 isFixed = { false }
102111 showSidebarToggle = { true }
103112 hideLogo = { true }
104113 onSidebarToggle = { ( ) => setIsSidebarOpen ( true ) }
105114 >
106- < div className = "flex items-center gap-6" >
115+ < div className = "flex items-center gap-4 sm:gap- 6" >
107116 < Link
108117 href = "/gig-list"
109- className = "hidden md:flex items-center justify-center bg-emerald-500 hover:bg-emerald-600 text-white px-5 py-2 rounded-xl font-bold text-sm transition-colors shadow-sm "
118+ className = "hidden md:flex items-center justify-center bg-emerald-500 hover:bg-emerald-600 text-white px-5 py-2 rounded-xl font-bold text-xs transition-all shadow-lg shadow-emerald-500/20 hover:-translate-y-0.5 "
110119 >
111- Explore gigs
120+ Explore Gigs
112121 </ Link >
113122 </ div >
114123 </ DashboardHeader >
115124
116- < div className = "flex-1 w-full overflow-y-auto pb-10" >
117- { children }
125+ < div className = "flex-1 w-full relative" >
126+ < div className = "absolute inset-0 overflow-y-auto" >
127+ < div className = "min-h-full pb-6" >
128+ { children }
129+ </ div >
130+ </ div >
118131 </ div >
119132 </ main >
120133
0 commit comments