2024-11-10 09:34:27 +01:00
|
|
|
"use client"
|
|
|
|
|
|
|
|
|
|
import {PropsWithChildren} from "react";
|
|
|
|
|
import {DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger} from "@/components/ui/dropdown-menu";
|
|
|
|
|
import {signOutAction} from "@/features/auth/auth.action";
|
2024-11-11 14:33:20 +01:00
|
|
|
import {redirect} from "next/navigation";
|
2024-12-13 12:28:08 +01:00
|
|
|
import {CircleUser, LogOut, ShieldHalf} from "lucide-react";
|
2024-11-10 09:34:27 +01:00
|
|
|
|
|
|
|
|
export type LoggedInDropdownProps = PropsWithChildren<{}>
|
|
|
|
|
|
|
|
|
|
export const LoggedInDropdown = (props: LoggedInDropdownProps) => {
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<DropdownMenu>
|
|
|
|
|
<DropdownMenuTrigger asChild>
|
|
|
|
|
{props.children}
|
|
|
|
|
</DropdownMenuTrigger>
|
|
|
|
|
<DropdownMenuContent
|
|
|
|
|
side="top"
|
|
|
|
|
className="w-[--radix-popper-anchor-width]"
|
|
|
|
|
>
|
2024-11-11 14:33:20 +01:00
|
|
|
<DropdownMenuItem onClick={() => {
|
|
|
|
|
redirect("/dashboard/profile")
|
|
|
|
|
}}>
|
2024-12-13 12:28:08 +01:00
|
|
|
<div className="flex justify-start items-center gap-2">
|
|
|
|
|
<CircleUser size={16}/>
|
|
|
|
|
<span>Account</span>
|
|
|
|
|
</div>
|
|
|
|
|
</DropdownMenuItem>
|
|
|
|
|
<DropdownMenuItem onClick={() => {
|
|
|
|
|
redirect("/dashboard/admin")
|
|
|
|
|
}}>
|
|
|
|
|
<div className="flex justify-start items-center gap-2">
|
|
|
|
|
<ShieldHalf size={16}/>
|
|
|
|
|
<span>Administration Panel</span>
|
|
|
|
|
</div>
|
2024-11-10 09:34:27 +01:00
|
|
|
</DropdownMenuItem>
|
|
|
|
|
<DropdownMenuItem onClick={() => {
|
|
|
|
|
signOutAction()
|
|
|
|
|
}}>
|
2024-12-13 12:28:08 +01:00
|
|
|
<div className="flex justify-start items-center gap-2">
|
|
|
|
|
<LogOut size={16}/>
|
|
|
|
|
<span>Log out</span>
|
|
|
|
|
</div>
|
2024-11-10 09:34:27 +01:00
|
|
|
</DropdownMenuItem>
|
|
|
|
|
</DropdownMenuContent>
|
|
|
|
|
</DropdownMenu>
|
|
|
|
|
|
2024-12-13 12:28:08 +01:00
|
|
|
)
|
|
|
|
|
}
|