@@ -10,8 +10,8 @@ import { Card } from "./ui/card";
1010import { useMainStore } from "@/hooks/useMainStore" ;
1111import { Avatar , AvatarFallback , AvatarImage } from "./ui/avatar" ;
1212import { NzNavigationMenuLink } from "./xui/navigation-menu" ;
13- import { DropdownMenu , DropdownMenuContent , DropdownMenuGroup , DropdownMenuItem , DropdownMenuLabel , DropdownMenuPortal , DropdownMenuSeparator , DropdownMenuShortcut , DropdownMenuSub , DropdownMenuSubContent , DropdownMenuSubTrigger , DropdownMenuTrigger } from "./ui/dropdown-menu" ;
14- import { User , LogOut } from "lucide-react" ;
13+ import { DropdownMenu , DropdownMenuContent , DropdownMenuGroup , DropdownMenuItem , DropdownMenuLabel , DropdownMenuSeparator , DropdownMenuShortcut , DropdownMenuTrigger } from "./ui/dropdown-menu" ;
14+ import { LogOut , Settings } from "lucide-react" ;
1515import { useAuth } from "@/hooks/useAuth" ;
1616import { Link , useLocation } from "react-router-dom" ;
1717import { useMediaQuery } from "@/hooks/useMediaQuery" ;
@@ -47,6 +47,7 @@ export default function Header() {
4747 const isDesktop = useMediaQuery ( "(min-width: 890px)" )
4848
4949 const [ open , setOpen ] = useState ( false )
50+ const [ dropdownOpen , setDropdownOpen ] = useState ( false ) ;
5051
5152 return (
5253 isDesktop ? (
@@ -105,7 +106,7 @@ export default function Header() {
105106 < ModeToggle />
106107 {
107108 profile && < >
108- < DropdownMenu >
109+ < DropdownMenu open = { dropdownOpen } onOpenChange = { setDropdownOpen } >
109110 < DropdownMenuTrigger asChild >
110111 < Avatar className = "ml-1 h-8 w-8 cursor-pointer border-foreground border-[1px]" >
111112 < AvatarImage src = { 'https://api.dicebear.com/7.x/notionists/svg?seed=' + profile . username } alt = { profile . username } />
@@ -116,14 +117,16 @@ export default function Header() {
116117 < DropdownMenuLabel > { profile . username } </ DropdownMenuLabel >
117118 < DropdownMenuSeparator />
118119 < DropdownMenuGroup >
119- < DropdownMenuItem >
120- < User />
121- < span > Profile</ span >
122- < DropdownMenuShortcut > ⇧⌘P</ DropdownMenuShortcut >
120+ < DropdownMenuItem onClick = { ( ) => { setDropdownOpen ( false ) } } >
121+ < Link to = "/dashboard/settings" className = "flex items-center gap-2 w-full" >
122+ < Settings />
123+ Settings
124+ < DropdownMenuShortcut > ⇧⌘P</ DropdownMenuShortcut >
125+ </ Link >
123126 </ DropdownMenuItem >
124127 </ DropdownMenuGroup >
125128 < DropdownMenuSeparator />
126- < DropdownMenuItem onClick = { logout } >
129+ < DropdownMenuItem onClick = { logout } className = "cursor-pointer" >
127130 < LogOut />
128131 < span > Log out</ span >
129132 < DropdownMenuShortcut > ⇧⌘Q</ DropdownMenuShortcut >
@@ -171,13 +174,13 @@ export default function Header() {
171174 }
172175 </ div >
173176 < Card className = "mx-2 my-2 flex justify-center items-center hover:bg-accent transition duration-200" >
174- < Link className = "inline-flex w-full items-center px-4 py-2" to = "/dashboard" > < img className = "h-7 mr-1" src = '/dashboard/logo.svg' /> NEZHA</ Link >
177+ < Link className = "inline-flex w-full items-center px-4 py-2" to = { profile ? "/dashboard" : '#' } > < img className = "h-7 mr-1" src = '/dashboard/logo.svg' /> NEZHA</ Link >
175178 </ Card >
176179 < div className = "ml-auto flex items-center gap-1" >
177180 < ModeToggle />
178181 {
179182 profile && < >
180- < DropdownMenu >
183+ < DropdownMenu open = { dropdownOpen } onOpenChange = { setDropdownOpen } >
181184 < DropdownMenuTrigger asChild >
182185 < Avatar className = "ml-1 h-8 w-8 cursor-pointer border-foreground border-[1px]" >
183186 < AvatarImage src = { 'https://api.dicebear.com/7.x/notionists/svg?seed=' + profile . username } alt = { profile . username } />
@@ -188,14 +191,16 @@ export default function Header() {
188191 < DropdownMenuLabel > { profile . username } </ DropdownMenuLabel >
189192 < DropdownMenuSeparator />
190193 < DropdownMenuGroup >
191- < DropdownMenuItem >
192- < User />
193- < span > Profile</ span >
194- < DropdownMenuShortcut > ⇧⌘P</ DropdownMenuShortcut >
194+ < DropdownMenuItem onClick = { ( ) => { setDropdownOpen ( false ) } } >
195+ < Link to = "/dashboard/settings" className = "flex items-center gap-2 w-full" >
196+ < Settings />
197+ Settings
198+ < DropdownMenuShortcut > ⇧⌘P</ DropdownMenuShortcut >
199+ </ Link >
195200 </ DropdownMenuItem >
196201 </ DropdownMenuGroup >
197202 < DropdownMenuSeparator />
198- < DropdownMenuItem onClick = { logout } >
203+ < DropdownMenuItem onClick = { logout } className = "cursor-pointer" >
199204 < LogOut />
200205 < span > Log out</ span >
201206 < DropdownMenuShortcut > ⇧⌘Q</ DropdownMenuShortcut >
0 commit comments