@@ -8,7 +8,16 @@ import {DNamespaceRoleReactiveService, DNamespaceRoleView} from "../d-role"
88import { Avatar } from "../avatar/Avatar"
99import { Text } from "../text/Text"
1010import { Badge } from "../badge/Badge"
11- import { IconDots , IconMailCheck , IconTrash , IconUserCog , IconUserOff } from "@tabler/icons-react"
11+ import {
12+ IconArrowDown ,
13+ IconArrowUp ,
14+ IconCornerDownLeft ,
15+ IconDots ,
16+ IconMailCheck ,
17+ IconTrash ,
18+ IconUserCog ,
19+ IconUserOff
20+ } from "@tabler/icons-react"
1221import { Button } from "../button/Button"
1322import { Tooltip , TooltipArrow , TooltipContent , TooltipPortal , TooltipTrigger } from "../tooltip/Tooltip"
1423import { DNamespaceRolePermissions } from "../d-role/DNamespaceRolePermissions"
@@ -17,6 +26,7 @@ import {DNamespaceMemberView} from "./DNamespaceMember.view"
1726import { Dialog , DialogClose , DialogContent , DialogPortal } from "../dialog/Dialog"
1827import { Card } from "../card/Card"
1928import CardSection from "../card/CardSection"
29+ import { Spacing } from "../spacing/Spacing" ;
2030
2131export interface DNamespaceMemberContentProps {
2232 memberId : NamespaceMember [ 'id' ]
@@ -80,7 +90,7 @@ export const DNamespaceMemberContent: React.FC<DNamespaceMemberContentProps> = (
8090 < Text hierarchy = { "primary" } > { role ?. name } </ Text >
8191 < DNamespaceRolePermissions abilities = { role ?. abilities ! ! } />
8292 </ Flex >
83- < Button color = { "error" } paddingSize = { "xxs" } onClick = { ( ) => {
93+ < Button color = { "error" } variant = { "filled" } paddingSize = { "xxs" } onClick = { ( ) => {
8494 setLocalAssignedRoles ( prevState => prevState . filter ( aRole => aRole ?. id != role ?. id ) )
8595 } } >
8696 < IconTrash size = { 16 } />
@@ -96,21 +106,40 @@ export const DNamespaceMemberContent: React.FC<DNamespaceMemberContentProps> = (
96106 </ CardSection >
97107 </ MenuTrigger >
98108 < MenuPortal >
99- < MenuContent side = { "bottom" } sideOffset = { 8 } align = { "center" } >
100- < MenuLabel > Roles to add</ MenuLabel >
101- { rolesToAssign . map ( ( role , index ) => {
102- return < >
103- < MenuItem onSelect = { ( ) => {
104- setLocalAssignedRoles ( prevState => [ ...prevState , role ] )
105- } } >
106- < Flex align = { "center" } style = { { gap : "1.3rem" } } >
107- < Text hierarchy = { "primary" } > { role ?. name } </ Text >
108- < DNamespaceRolePermissions abilities = { role ?. abilities ! ! } />
109+ < MenuContent side = { "bottom" } sideOffset = { 8 } align = { "center" } color = { "secondary" }
110+ maw = { "300px" } >
111+ < Card paddingSize = { "xxs" } mt = { - 0.35 } mx = { - 0.35 } style = { { borderWidth : "2px" } } >
112+ < MenuLabel > Roles to add</ MenuLabel >
113+ { rolesToAssign . map ( ( role , index ) => {
114+ return < >
115+ < MenuItem onSelect = { ( ) => {
116+ setLocalAssignedRoles ( prevState => [ ...prevState , role ] )
117+ } } >
118+ < Flex align = { "center" } style = { { gap : "1.3rem" } } >
119+ < Text hierarchy = { "primary" } > { role ?. name } </ Text >
120+ < DNamespaceRolePermissions abilities = { role ?. abilities ! ! } />
121+ </ Flex >
122+ </ MenuItem >
123+ { index < rolesToAssign . length - 1 && < MenuSeparator /> }
124+ </ >
125+ } ) }
126+ </ Card >
127+ < MenuLabel >
128+ < Flex style = { { gap : ".35rem" } } >
129+ < Flex align = { "center" } style = { { gap : "0.35rem" } } >
130+ < Flex >
131+ < Badge border > < IconArrowUp size = { 12 } /> </ Badge >
132+ < Badge border > < IconArrowDown size = { 12 } /> </ Badge >
109133 </ Flex >
110- </ MenuItem >
111- { index < rolesToAssign . length - 1 && < MenuSeparator /> }
112- </ >
113- } ) }
134+ move
135+ </ Flex >
136+ < Spacing spacing = { "xxs" } />
137+ < Flex align = { "center" } style = { { gap : ".35rem" } } >
138+ < Badge border > < IconCornerDownLeft size = { 12 } /> </ Badge >
139+ insert
140+ </ Flex >
141+ </ Flex >
142+ </ MenuLabel >
114143 </ MenuContent >
115144 </ MenuPortal >
116145 </ Menu >
@@ -179,25 +208,43 @@ export const DNamespaceMemberContent: React.FC<DNamespaceMemberContentProps> = (
179208 { member ?. userAbilities ?. deleteMember || member ?. userAbilities ?. assignMemberRoles ? (
180209 < Menu >
181210 < MenuTrigger asChild >
182- < Button color = "secondary" >
211+ < Button variant = { "filled" } color = "secondary" >
183212 < IconDots size = { 16 } />
184213 </ Button >
185214 </ MenuTrigger >
186215 < MenuPortal >
187- < MenuContent align = { "end" } side = { "bottom" } sideOffset = { 8 } >
188- < MenuLabel > Actions</ MenuLabel >
189- { member ?. userAbilities ?. deleteMember && (
190- < MenuItem onSelect = { ( ) => setOpenRemovedMemberDialog ( true ) } >
191- < IconUserOff size = { 16 } />
192- < Text > Remove member</ Text >
193- </ MenuItem >
194- ) }
195- { member ?. userAbilities ?. assignMemberRoles && (
196- < MenuItem onSelect = { ( ) => setOpenAssignRolesDialog ( true ) } >
197- < IconUserCog size = { 16 } />
198- < Text > Assign role</ Text >
199- </ MenuItem >
200- ) }
216+ < MenuContent align = { "end" } side = { "bottom" } sideOffset = { 8 } color = { "secondary" } >
217+ < Card paddingSize = { "xxs" } mt = { - 0.35 } mx = { - 0.35 } style = { { borderWidth : "2px" } } >
218+ < MenuLabel > Actions</ MenuLabel >
219+ { member ?. userAbilities ?. deleteMember && (
220+ < MenuItem onSelect = { ( ) => setOpenRemovedMemberDialog ( true ) } >
221+ < IconUserOff size = { 16 } />
222+ < Text > Remove member</ Text >
223+ </ MenuItem >
224+ ) }
225+ { member ?. userAbilities ?. assignMemberRoles && (
226+ < MenuItem onSelect = { ( ) => setOpenAssignRolesDialog ( true ) } >
227+ < IconUserCog size = { 16 } />
228+ < Text > Assign role</ Text >
229+ </ MenuItem >
230+ ) }
231+ </ Card >
232+ < MenuLabel >
233+ < Flex style = { { gap : ".35rem" } } >
234+ < Flex align = { "center" } style = { { gap : "0.35rem" } } >
235+ < Flex >
236+ < Badge border > < IconArrowUp size = { 12 } /> </ Badge >
237+ < Badge border > < IconArrowDown size = { 12 } /> </ Badge >
238+ </ Flex >
239+ move
240+ </ Flex >
241+ < Spacing spacing = { "xxs" } />
242+ < Flex align = { "center" } style = { { gap : ".35rem" } } >
243+ < Badge border > < IconCornerDownLeft size = { 12 } /> </ Badge >
244+ perform
245+ </ Flex >
246+ </ Flex >
247+ </ MenuLabel >
201248 </ MenuContent >
202249 </ MenuPortal >
203250 </ Menu >
0 commit comments