Skip to content

Commit 9dd9d94

Browse files
committed
feat: add menu for member actions and enhance Badge component with border prop
1 parent f2248cf commit 9dd9d94

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

src/components/d-member/DNamespaceMemberContent.tsx

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ import {DNamespaceRoleReactiveService} from "../d-role";
88
import {Avatar} from "../avatar/Avatar";
99
import {Text} from "../text/Text";
1010
import {Badge} from "../badge/Badge";
11-
import {IconDots, IconMailCheck} from "@tabler/icons-react";
11+
import {IconDots, IconMailCheck, IconUserCog, IconUserOff} from "@tabler/icons-react";
1212
import {Button} from "../button/Button";
1313
import {Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipTrigger} from "../tooltip/Tooltip";
1414
import {DNamespaceRolePermissions} from "../d-role/DNamespaceRolePermissions";
15+
import {Menu, MenuContent, MenuItem, MenuLabel, MenuPortal, MenuTrigger} from "../menu/Menu";
1516

1617
export interface DNamespaceMemberContentProps {
1718
memberId: NamespaceMember['id']
@@ -69,21 +70,42 @@ export const DNamespaceMemberContent: React.FC<DNamespaceMemberContentProps> = (
6970
<Flex align={"center"} style={{gap: "1.3rem"}}>
7071
<Flex style={{flexDirection: "column", gap: "0.35rem"}}>
7172
<Flex style={{gap: "0.35rem"}} align={"center"}>
72-
{user?.admin ? <Badge color={"primary"}>
73+
{user?.admin ? <Badge border color={"primary"}>
7374
<Text hierarchy={"tertiary"}>Owner</Text>
7475
</Badge> : null}
7576
{user?.emailVerifiedAt ? (
76-
<Badge color={"primary"}>
77+
<Badge border color={"primary"}>
7778
<IconMailCheck size={16}/>
7879
<Text hierarchy={"tertiary"}>Email verified</Text>
7980
</Badge>
8081
) : null}
8182
</Flex>
8283
</Flex>
8384
{member?.userAbilities?.deleteMember || member?.userAbilities?.assignMemberRoles ? (
84-
<Button color="secondary">
85-
<IconDots size={16}/>
86-
</Button>
85+
<Menu>
86+
<MenuTrigger asChild>
87+
<Button color="secondary">
88+
<IconDots size={16}/>
89+
</Button>
90+
</MenuTrigger>
91+
<MenuPortal>
92+
<MenuContent align={"end"} side={"bottom"} sideOffset={8}>
93+
<MenuLabel>Actions</MenuLabel>
94+
{member?.userAbilities?.deleteMember && (
95+
<MenuItem>
96+
<IconUserOff size={16}/>
97+
<Text>Remove member</Text>
98+
</MenuItem>
99+
)}
100+
{member?.userAbilities?.assignMemberRoles && (
101+
<MenuItem>
102+
<IconUserCog size={16}/>
103+
<Text>Assign role</Text>
104+
</MenuItem>
105+
)}
106+
</MenuContent>
107+
</MenuPortal>
108+
</Menu>
87109
) : null}
88110
</Flex>
89111
</Flex>

0 commit comments

Comments
 (0)