46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { CircleUserIcon, LogOut, User2Icon } from "lucide-react"
|
|
import { Link } from "react-router"
|
|
import { Button } from "@/components/ui/button"
|
|
import {
|
|
DropdownMenu,
|
|
DropdownMenuContent,
|
|
DropdownMenuGroup,
|
|
DropdownMenuItem,
|
|
DropdownMenuSeparator,
|
|
DropdownMenuTrigger,
|
|
} from "@/components/ui/dropdown-menu"
|
|
|
|
const handleLogout = () => {
|
|
localStorage.removeItem("accessToken")
|
|
window.location.href = "/login"
|
|
}
|
|
|
|
export function UserMenu() {
|
|
return (
|
|
<DropdownMenu>
|
|
<DropdownMenuTrigger asChild>
|
|
<Button variant="outline">
|
|
<CircleUserIcon />
|
|
</Button>
|
|
</DropdownMenuTrigger>
|
|
<DropdownMenuContent side="bottom" align="end" className="w-36">
|
|
<DropdownMenuGroup>
|
|
<DropdownMenuItem asChild>
|
|
<Link to={"/profile"} className="flex cursor-pointer items-center">
|
|
<User2Icon className="mr-2" />
|
|
Profile
|
|
</Link>
|
|
</DropdownMenuItem>
|
|
</DropdownMenuGroup>
|
|
<DropdownMenuSeparator />
|
|
<DropdownMenuItem className="flex items-center">
|
|
<button onClick={handleLogout} className="flex items-center">
|
|
<LogOut className="mr-4" />
|
|
Logout
|
|
</button>
|
|
</DropdownMenuItem>
|
|
</DropdownMenuContent>
|
|
</DropdownMenu>
|
|
)
|
|
}
|