1
- import type { Interpolation , Theme } from "@emotion/react" ;
2
1
import PersonAdd from "@mui/icons-material/PersonAdd" ;
3
2
import LoadingButton from "@mui/lab/LoadingButton" ;
4
- import Table from "@mui/material/Table" ;
5
- import TableBody from "@mui/material/TableBody" ;
6
- import TableCell from "@mui/material/TableCell" ;
7
- import TableContainer from "@mui/material/TableContainer" ;
8
- import TableHead from "@mui/material/TableHead" ;
9
- import TableRow from "@mui/material/TableRow" ;
10
3
import { getErrorMessage } from "api/errors" ;
11
- import type { GroupsByUserId } from "api/queries/groups" ;
12
4
import type {
13
5
Group ,
14
6
OrganizationMemberWithUserData ,
@@ -28,6 +20,13 @@ import {
28
20
} from "components/MoreMenu/MoreMenu" ;
29
21
import { SettingsHeader } from "components/SettingsHeader/SettingsHeader" ;
30
22
import { Stack } from "components/Stack/Stack" ;
23
+ import {
24
+ Table ,
25
+ TableBody ,
26
+ TableCell ,
27
+ TableHeader ,
28
+ TableRow ,
29
+ } from "components/Table/Table" ;
31
30
import { UserAutocomplete } from "components/UserAutocomplete/UserAutocomplete" ;
32
31
import { UserGroupsCell } from "pages/UsersPage/UsersTable/UserGroupsCell" ;
33
32
import { type FC , useState } from "react" ;
@@ -80,83 +79,80 @@ export const OrganizationMembersPageView: FC<
80
79
onSubmit = { addMember }
81
80
/>
82
81
) }
83
-
84
- < TableContainer >
85
- < Table >
86
- < TableHead >
87
- < TableRow >
88
- < TableCell width = "33%" > User</ TableCell >
89
- < TableCell width = "33%" >
90
- < Stack direction = "row" spacing = { 1 } alignItems = "center" >
91
- < span > Roles</ span >
92
- < TableColumnHelpTooltip variant = "roles" />
93
- </ Stack >
82
+ < Table >
83
+ < TableHeader >
84
+ < TableRow >
85
+ < TableCell width = "33%" > User</ TableCell >
86
+ < TableCell width = "33%" >
87
+ < Stack direction = "row" spacing = { 1 } alignItems = "center" >
88
+ < span > Roles</ span >
89
+ < TableColumnHelpTooltip variant = "roles" />
90
+ </ Stack >
91
+ </ TableCell >
92
+ < TableCell width = "33%" >
93
+ < Stack direction = "row" spacing = { 1 } alignItems = "center" >
94
+ < span > Groups</ span >
95
+ < TableColumnHelpTooltip variant = "groups" />
96
+ </ Stack >
97
+ </ TableCell >
98
+ < TableCell width = "1%" />
99
+ </ TableRow >
100
+ </ TableHeader >
101
+ < TableBody >
102
+ { members ?. map ( ( member ) => (
103
+ < TableRow key = { member . user_id } className = "align-baseline" >
104
+ < TableCell >
105
+ < AvatarData
106
+ avatar = {
107
+ < Avatar
108
+ fallback = { member . username }
109
+ src = { member . avatar_url }
110
+ />
111
+ }
112
+ title = { member . name || member . username }
113
+ subtitle = { member . email }
114
+ />
94
115
</ TableCell >
95
- < TableCell width = "33%" >
96
- < Stack direction = "row" spacing = { 1 } alignItems = "center" >
97
- < span > Groups</ span >
98
- < TableColumnHelpTooltip variant = "groups" />
99
- </ Stack >
116
+ < UserRoleCell
117
+ inheritedRoles = { member . global_roles }
118
+ roles = { member . roles }
119
+ allAvailableRoles = { allAvailableRoles }
120
+ oidcRoleSyncEnabled = { false }
121
+ isLoading = { isUpdatingMemberRoles }
122
+ canEditUsers = { canEditMembers }
123
+ onEditRoles = { async ( roles ) => {
124
+ try {
125
+ await updateMemberRoles ( member , roles ) ;
126
+ displaySuccess ( "Roles updated successfully." ) ;
127
+ } catch ( error ) {
128
+ displayError (
129
+ getErrorMessage ( error , "Failed to update roles." ) ,
130
+ ) ;
131
+ }
132
+ } }
133
+ />
134
+ < UserGroupsCell userGroups = { member . groups } />
135
+ < TableCell >
136
+ { member . user_id !== me . id && canEditMembers && (
137
+ < MoreMenu >
138
+ < MoreMenuTrigger >
139
+ < ThreeDotsButton />
140
+ </ MoreMenuTrigger >
141
+ < MoreMenuContent >
142
+ < MoreMenuItem
143
+ danger
144
+ onClick = { ( ) => removeMember ( member ) }
145
+ >
146
+ Remove
147
+ </ MoreMenuItem >
148
+ </ MoreMenuContent >
149
+ </ MoreMenu >
150
+ ) }
100
151
</ TableCell >
101
- < TableCell width = "1%" />
102
152
</ TableRow >
103
- </ TableHead >
104
- < TableBody >
105
- { members ?. map ( ( member ) => (
106
- < TableRow key = { member . user_id } >
107
- < TableCell >
108
- < AvatarData
109
- avatar = {
110
- < Avatar
111
- fallback = { member . username }
112
- src = { member . avatar_url }
113
- />
114
- }
115
- title = { member . name || member . username }
116
- subtitle = { member . email }
117
- />
118
- </ TableCell >
119
- < UserRoleCell
120
- inheritedRoles = { member . global_roles }
121
- roles = { member . roles }
122
- allAvailableRoles = { allAvailableRoles }
123
- oidcRoleSyncEnabled = { false }
124
- isLoading = { isUpdatingMemberRoles }
125
- canEditUsers = { canEditMembers }
126
- onEditRoles = { async ( roles ) => {
127
- try {
128
- await updateMemberRoles ( member , roles ) ;
129
- displaySuccess ( "Roles updated successfully." ) ;
130
- } catch ( error ) {
131
- displayError (
132
- getErrorMessage ( error , "Failed to update roles." ) ,
133
- ) ;
134
- }
135
- } }
136
- />
137
- < UserGroupsCell userGroups = { member . groups } />
138
- < TableCell >
139
- { member . user_id !== me . id && canEditMembers && (
140
- < MoreMenu >
141
- < MoreMenuTrigger >
142
- < ThreeDotsButton />
143
- </ MoreMenuTrigger >
144
- < MoreMenuContent >
145
- < MoreMenuItem
146
- danger
147
- onClick = { ( ) => removeMember ( member ) }
148
- >
149
- Remove
150
- </ MoreMenuItem >
151
- </ MoreMenuContent >
152
- </ MoreMenu >
153
- ) }
154
- </ TableCell >
155
- </ TableRow >
156
- ) ) }
157
- </ TableBody >
158
- </ Table >
159
- </ TableContainer >
153
+ ) ) }
154
+ </ TableBody >
155
+ </ Table >
160
156
</ Stack >
161
157
</ div >
162
158
) ;
@@ -190,7 +186,7 @@ const AddOrganizationMember: FC<AddOrganizationMemberProps> = ({
190
186
>
191
187
< Stack direction = "row" alignItems = "center" spacing = { 1 } >
192
188
< UserAutocomplete
193
- css = { styles . autoComplete }
189
+ className = "w-[300px]"
194
190
value = { selectedUser }
195
191
onChange = { ( newValue ) => {
196
192
setSelectedUser ( newValue ) ;
@@ -210,17 +206,3 @@ const AddOrganizationMember: FC<AddOrganizationMemberProps> = ({
210
206
</ form >
211
207
) ;
212
208
} ;
213
-
214
- const styles = {
215
- role : ( theme ) => ( {
216
- backgroundColor : theme . roles . notice . background ,
217
- borderColor : theme . roles . notice . outline ,
218
- } ) ,
219
- globalRole : ( theme ) => ( {
220
- backgroundColor : theme . roles . inactive . background ,
221
- borderColor : theme . roles . inactive . outline ,
222
- } ) ,
223
- autoComplete : {
224
- width : 300 ,
225
- } ,
226
- } satisfies Record < string , Interpolation < Theme > > ;
0 commit comments