Files
swiss-datashare/frontend/src/components/navBar/ActionAvatar.tsx

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-05-18 12:35:20 +02:00
import { ActionIcon, Avatar, Menu } from "@mantine/core";
2022-10-31 11:20:54 +01:00
import Link from "next/link";
2022-12-01 23:07:49 +01:00
import { TbDoorExit, TbLink, TbSettings } from "react-icons/tb";
import useUser from "../../hooks/user.hook";
import authService from "../../services/auth.service";
2022-05-11 13:50:28 +02:00
const ActionAvatar = () => {
2022-12-01 23:07:49 +01:00
const user = useUser();
2022-05-11 13:50:28 +02:00
return (
2022-10-11 09:03:30 +02:00
<Menu position="bottom-start" withinPortal>
2022-10-10 22:14:23 +02:00
<Menu.Target>
2022-05-11 13:50:28 +02:00
<ActionIcon>
<Avatar size={28} radius="xl" />
</ActionIcon>
2022-10-10 22:14:23 +02:00
</Menu.Target>
<Menu.Dropdown>
<Menu.Item
2022-10-31 11:20:54 +01:00
component={Link}
2022-10-10 22:14:23 +02:00
href="/account/shares"
icon={<TbLink size={14} />}
2022-10-10 22:14:23 +02:00
>
2022-10-10 22:30:04 +02:00
My shares
2022-10-10 22:14:23 +02:00
</Menu.Item>
2022-12-01 23:07:49 +01:00
{user!.isAdmin && (
<Menu.Item
component={Link}
href="/admin/config"
icon={<TbSettings size={14} />}
>
Administration
</Menu.Item>
)}
2022-10-10 22:14:23 +02:00
<Menu.Item
onClick={async () => {
authService.signOut();
}}
icon={<TbDoorExit size={14} />}
2022-10-10 22:14:23 +02:00
>
Sign out
</Menu.Item>
</Menu.Dropdown>
2022-05-11 13:50:28 +02:00
</Menu>
);
};
export default ActionAvatar;