@@ -8,10 +8,11 @@ import {DNamespaceRoleReactiveService} from "../d-role";
88import { Avatar } from "../avatar/Avatar" ;
99import { Text } from "../text/Text" ;
1010import { Badge } from "../badge/Badge" ;
11- import { IconDots , IconMailCheck } from "@tabler/icons-react" ;
11+ import { IconDots , IconMailCheck , IconUserCog , IconUserOff } from "@tabler/icons-react" ;
1212import { Button } from "../button/Button" ;
1313import { Tooltip , TooltipArrow , TooltipContent , TooltipPortal , TooltipTrigger } from "../tooltip/Tooltip" ;
1414import { DNamespaceRolePermissions } from "../d-role/DNamespaceRolePermissions" ;
15+ import { Menu , MenuContent , MenuItem , MenuLabel , MenuPortal , MenuTrigger } from "../menu/Menu" ;
1516
1617export 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