@@ -11,7 +11,8 @@ import {
1111 Home ,
1212 RefreshCw ,
1313 UserPlus ,
14- Activity
14+ Activity ,
15+ Menu
1516} from "lucide-react" ;
1617import { useAuth , hasRequiredApiKeys } from "@/lib/auth" ;
1718import { useRBAC } from "@/hooks/useRBAC" ;
@@ -141,8 +142,9 @@ export default function Header() {
141142 < div className = "flex items-center gap-2 sm:gap-3" >
142143 { isAuthenticated ? (
143144 < >
145+ { /* Desktop Profile Dropdown */ }
144146 < DropdownMenu >
145- < DropdownMenuTrigger asChild >
147+ < DropdownMenuTrigger asChild className = "hidden md:flex" >
146148 < Button variant = "outline" size = "sm" className = "max-w-[150px] sm:max-w-none" >
147149 < UserIcon className = "h-4 w-4 mr-2" />
148150 < span className = "truncate" > { profile ?. name || profile ?. full_name || user ?. email || 'Profile' } </ span >
@@ -167,30 +169,90 @@ export default function Header() {
167169 Settings
168170 </ Link >
169171 </ DropdownMenuItem >
170- < DropdownMenuItem asChild className = "md:hidden" >
172+ < RoleGate permissions = { [ 'admin.access' ] } >
173+ < DropdownMenuSeparator />
174+ < DropdownMenuLabel className = "text-xs text-muted-foreground" > Admin</ DropdownMenuLabel >
175+ < DropdownMenuItem asChild >
176+ < Link to = "/admin/invitations" className = "flex items-center" >
177+ < UserPlus className = "h-4 w-4 mr-2" />
178+ Invitations
179+ </ Link >
180+ </ DropdownMenuItem >
181+ < DropdownMenuItem asChild >
182+ < Link to = "/admin/users" className = "flex items-center" >
183+ < UserIcon className = "h-4 w-4 mr-2" />
184+ User Management
185+ </ Link >
186+ </ DropdownMenuItem >
187+ < DropdownMenuItem asChild >
188+ < Link to = "/admin/roles" className = "flex items-center" >
189+ < Settings className = "h-4 w-4 mr-2" />
190+ Role Management
191+ </ Link >
192+ </ DropdownMenuItem >
193+ </ RoleGate >
194+ < DropdownMenuSeparator />
195+ < DropdownMenuItem onSelect = { logout } className = "text-red-600" >
196+ < LogOut className = "h-4 w-4 mr-2" />
197+ Logout
198+ </ DropdownMenuItem >
199+ </ DropdownMenuContent >
200+ </ DropdownMenu >
201+
202+ { /* Mobile Hamburger Menu */ }
203+ < DropdownMenu >
204+ < DropdownMenuTrigger asChild className = "md:hidden" >
205+ < Button variant = "outline" size = "icon" >
206+ < Menu className = "h-5 w-5" />
207+ </ Button >
208+ </ DropdownMenuTrigger >
209+ < DropdownMenuContent align = "end" className = "w-56" >
210+ < DropdownMenuLabel >
211+ < div className = "flex flex-col gap-1" >
212+ < span className = "text-sm font-normal truncate" > { profile ?. name || profile ?. full_name || user ?. email } </ span >
213+ < RoleBadge className = "mt-1" />
214+ </ div >
215+ </ DropdownMenuLabel >
216+ < DropdownMenuSeparator />
217+ < DropdownMenuLabel className = "text-xs text-muted-foreground" > Navigation</ DropdownMenuLabel >
218+ < DropdownMenuItem asChild >
171219 < Link to = "/dashboard" className = "flex items-center" >
172220 < Home className = "h-4 w-4 mr-2" />
173221 Dashboard
174222 </ Link >
175223 </ DropdownMenuItem >
176- < DropdownMenuItem asChild className = "md:hidden" >
224+ < DropdownMenuItem asChild >
177225 < Link to = "/analysis-records" className = "flex items-center" >
178226 < FileText className = "h-4 w-4 mr-2" />
179227 Analysis Records
180228 </ Link >
181229 </ DropdownMenuItem >
182- < DropdownMenuItem asChild className = "md:hidden" >
230+ < DropdownMenuItem asChild >
183231 < Link to = "/rebalance-records" className = "flex items-center" >
184232 < RefreshCw className = "h-4 w-4 mr-2" />
185233 Rebalance Records
186234 </ Link >
187235 </ DropdownMenuItem >
188- < DropdownMenuItem asChild className = "md:hidden" >
236+ < DropdownMenuItem asChild >
189237 < Link to = "/trade-history" className = "flex items-center" >
190238 < TrendingUp className = "h-4 w-4 mr-2" />
191239 Trade History
192240 </ Link >
193241 </ DropdownMenuItem >
242+ < DropdownMenuSeparator />
243+ < DropdownMenuLabel className = "text-xs text-muted-foreground" > Account</ DropdownMenuLabel >
244+ < DropdownMenuItem asChild >
245+ < Link to = "/profile" className = "flex items-center" >
246+ < UserIcon className = "h-4 w-4 mr-2" />
247+ Profile
248+ </ Link >
249+ </ DropdownMenuItem >
250+ < DropdownMenuItem asChild >
251+ < Link to = "/settings" className = "flex items-center" >
252+ < Settings className = "h-4 w-4 mr-2" />
253+ Settings
254+ </ Link >
255+ </ DropdownMenuItem >
194256 < RoleGate permissions = { [ 'admin.access' ] } >
195257 < DropdownMenuSeparator />
196258 < DropdownMenuLabel className = "text-xs text-muted-foreground" > Admin</ DropdownMenuLabel >
0 commit comments