| 1 |
3c1143b |
Mardin |
2y ago |
import { |
| 2 |
3c1143b |
Mardin |
2y ago |
DropdownMenu, |
| 3 |
3c1143b |
Mardin |
2y ago |
DropdownMenuContent, |
| 4 |
3c1143b |
Mardin |
2y ago |
DropdownMenuItem, |
| 5 |
3c1143b |
Mardin |
2y ago |
DropdownMenuLabel, |
| 6 |
3c1143b |
Mardin |
2y ago |
DropdownMenuSeparator, |
| 7 |
3c1143b |
Mardin |
2y ago |
DropdownMenuTrigger, |
| 8 |
3c1143b |
Mardin |
2y ago |
DropdownMenuGroup, |
| 9 |
3c1143b |
Mardin |
2y ago |
Button, |
| 10 |
3c1143b |
Mardin |
2y ago |
} from "@marzneshin/components"; |
| 11 |
ce27a57 |
Mardin |
2y ago |
import { Link } from "@tanstack/react-router"; |
| 12 |
3c1143b |
Mardin |
2y ago |
import { FC } from 'react'; |
| 13 |
ce27a57 |
Mardin |
2y ago |
import { Settings, MenuIcon, ShieldCheck } from "lucide-react"; |
| 14 |
3c1143b |
Mardin |
2y ago |
import { LanguageSwitchMenu } from "@marzneshin/features/language-switch"; |
| 15 |
3c1143b |
Mardin |
2y ago |
import { ThemeToggle } from "@marzneshin/features/theme-switch"; |
| 16 |
ce27a57 |
Mardin |
2y ago |
import { useAuth, Logout } from "@marzneshin/features/auth"; |
| 17 |
ce27a57 |
Mardin |
2y ago |
import { useScreenBreakpoint } from "@marzneshin/hooks/use-screen-breakpoint"; |
| 18 |
ce27a57 |
Mardin |
2y ago |
import { useTranslation } from "react-i18next"; |
| 19 |
3c1143b |
Mardin |
2y ago |
|
| 20 |
ce27a57 |
Mardin |
2y ago |
export const HeaderMenu: FC = () => { |
| 21 |
ce27a57 |
Mardin |
2y ago |
|
| 22 |
ce27a57 |
Mardin |
2y ago |
const isDesktop = useScreenBreakpoint("md"); |
| 23 |
ce27a57 |
Mardin |
2y ago |
const { isSudo } = useAuth(); |
| 24 |
ce27a57 |
Mardin |
2y ago |
const { t } = useTranslation(); |
| 25 |
ce27a57 |
Mardin |
2y ago |
|
| 26 |
ce27a57 |
Mardin |
2y ago |
return ( |
| 27 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenu> |
| 28 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuTrigger asChild> |
| 29 |
ce27a57 |
Mardin |
2y ago |
<Button |
| 30 |
ce27a57 |
Mardin |
2y ago |
variant="secondary" |
| 31 |
ce27a57 |
Mardin |
2y ago |
className="bg-gray-800 text-secondary dark:hover:bg-secondary-foreground dark:hover:text-secondary dark:text-secondary-foreground" |
| 32 |
ce27a57 |
Mardin |
2y ago |
size="icon" |
| 33 |
ce27a57 |
Mardin |
2y ago |
> |
| 34 |
ce27a57 |
Mardin |
2y ago |
<MenuIcon /> |
| 35 |
ce27a57 |
Mardin |
2y ago |
</Button> |
| 36 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenuTrigger> |
| 37 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuContent> |
| 38 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuLabel>Menu</DropdownMenuLabel> |
| 39 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuSeparator /> |
| 40 |
ce27a57 |
Mardin |
2y ago |
{(!isDesktop && isSudo()) && ( |
| 41 |
ce27a57 |
Mardin |
2y ago |
<> |
| 42 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuItem className="w-full"> |
| 43 |
ce27a57 |
Mardin |
2y ago |
<Link to="/settings" className="hstack gap-1 items-center justify-between w-full h-fit p-0"> |
| 44 |
ce27a57 |
Mardin |
2y ago |
{t("settings")} |
| 45 |
ce27a57 |
Mardin |
2y ago |
<Settings className="size-4" /> |
| 46 |
ce27a57 |
Mardin |
2y ago |
</Link> |
| 47 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenuItem> |
| 48 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuSeparator /> |
| 49 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuItem className="w-full"> |
| 50 |
ce27a57 |
Mardin |
2y ago |
<Link to="/admins" className="hstack gap-1 items-center justify-between w-full h-fit p-0" > |
| 51 |
ce27a57 |
Mardin |
2y ago |
{t("admins")} |
| 52 |
ce27a57 |
Mardin |
2y ago |
<ShieldCheck className="size-4" /> |
| 53 |
ce27a57 |
Mardin |
2y ago |
</Link> |
| 54 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenuItem> |
| 55 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuSeparator /> |
| 56 |
ce27a57 |
Mardin |
2y ago |
</> |
| 57 |
ce27a57 |
Mardin |
2y ago |
)} |
| 58 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuItem className="w-full"> |
| 59 |
ce27a57 |
Mardin |
2y ago |
<Logout /> |
| 60 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenuItem> |
| 61 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuSeparator /> |
| 62 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuGroup> |
| 63 |
ce27a57 |
Mardin |
2y ago |
<LanguageSwitchMenu /> |
| 64 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenuGroup> |
| 65 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuSeparator /> |
| 66 |
ce27a57 |
Mardin |
2y ago |
<DropdownMenuGroup> |
| 67 |
ce27a57 |
Mardin |
2y ago |
<ThemeToggle /> |
| 68 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenuGroup> |
| 69 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenuContent> |
| 70 |
ce27a57 |
Mardin |
2y ago |
</DropdownMenu > |
| 71 |
ce27a57 |
Mardin |
2y ago |
) |
| 72 |
ce27a57 |
Mardin |
2y ago |
}; |