11/* eslint-disable @typescript-eslint/no-explicit-any */
2+ import { Theme } from '@mui/material' ;
23import { MUIDataTableColumn , MUIDataTableMeta } from 'mui-datatables' ;
34import { useRef , useState } from 'react' ;
4- import { Avatar , Box , Grid , Tooltip , Typography } from '../../base' ;
5- import { EditIcon , PersonIcon } from '../../icons' ;
5+ import { Box , Tooltip } from '../../base' ;
6+ import { EditIcon } from '../../icons' ;
67import Github from '../../icons/Github/GithubIcon' ;
78import Google from '../../icons/Google/GoogleIcon' ;
89import LogoutIcon from '../../icons/Logout/LogOutIcon' ;
9- import { CHARCOAL , SistentThemeProvider } from '../../theme' ;
10+ import { CHARCOAL , SistentThemeProviderWithoutBaseLine } from '../../theme' ;
1011import { useWindowDimensions } from '../Helpers/Dimension' ;
1112import {
1213 ColView ,
1314 updateVisibleColumns
1415} from '../Helpers/ResponsiveColumns/responsive-coulmns.tsx/responsive-column' ;
15- import PromptComponent from '../Prompt' ;
16+ import PromptComponent , { PROMPT_VARIANTS } from '../Prompt' ;
1617import ResponsiveDataTable from '../ResponsiveDataTable' ;
1718import { TooltipIcon } from '../TooltipIconButton' ;
1819import { parseDeletionTimestamp } from '../Workspaces/helper' ;
1920import { TableIconsContainer , TableIconsDisabledContainer } from '../Workspaces/styles' ;
20-
21+ import UserTableAvatarInfo from './UserTableAvatarInfo' ;
2122interface ActionButtonsProps {
2223 tableMeta : MUIDataTableMeta ;
2324 isRemoveFromTeamAllowed : boolean ;
2425 handleRemoveFromTeam : ( data : any [ ] ) => ( ) => void ;
26+ theme ?: Theme ;
2527}
2628
2729const ActionButtons : React . FC < ActionButtonsProps > = ( {
2830 tableMeta,
2931 handleRemoveFromTeam,
30- isRemoveFromTeamAllowed
32+ isRemoveFromTeamAllowed,
33+ theme
3134} ) => {
3235 return (
3336 < div >
@@ -39,12 +42,12 @@ const ActionButtons: React.FC<ActionButtonsProps> = ({
3942 title = "Remove user membership from team"
4043 iconType = "delete"
4144 >
42- < LogoutIcon fill = { CHARCOAL } secondaryFill = { CHARCOAL } />
45+ < LogoutIcon fill = { theme ?. palette . icon . default } />
4346 </ TooltipIcon >
4447 </ TableIconsContainer >
4548 ) : (
4649 < TableIconsDisabledContainer >
47- < LogoutIcon fill = { CHARCOAL } secondaryFill = { CHARCOAL } />
50+ < LogoutIcon fill = { theme ?. palette . icon . disabled } secondaryFill = { CHARCOAL } />
4851 </ TableIconsDisabledContainer >
4952 ) }
5053 </ div >
@@ -58,6 +61,7 @@ interface UsersTableProps {
5861 useRemoveUserFromTeamMutation : any ;
5962 useNotificationHandlers : any ;
6063 isRemoveFromTeamAllowed : boolean ;
64+ theme ?: Theme ;
6165}
6266
6367const UsersTable : React . FC < UsersTableProps > = ( {
@@ -66,7 +70,8 @@ const UsersTable: React.FC<UsersTableProps> = ({
6670 org_id,
6771 useRemoveUserFromTeamMutation,
6872 useNotificationHandlers,
69- isRemoveFromTeamAllowed
73+ isRemoveFromTeamAllowed,
74+ theme
7075} ) => {
7176 const [ page , setPage ] = useState < number > ( 0 ) ;
7277 const [ pageSize , setPageSize ] = useState < number > ( 10 ) ;
@@ -75,7 +80,6 @@ const UsersTable: React.FC<UsersTableProps> = ({
7580 const availableRoles : string [ ] = [ ] ;
7681 const { handleError, handleSuccess, handleInfo } = useNotificationHandlers ( ) ;
7782 const ref : any = useRef ( null ) ;
78-
7983 const { width } = useWindowDimensions ( ) ;
8084
8185 const { data : userData } = useGetUsersForOrgQuery ( {
@@ -98,7 +102,8 @@ const UsersTable: React.FC<UsersTableProps> = ({
98102 const response = await ref . current ?. show ( {
99103 title : `Remove User From Team ?` ,
100104 subtitle : removeUserFromTeamModalContent ( data [ 3 ] , data [ 2 ] ) ,
101- primaryOption : 'Proceed'
105+ primaryOption : 'Proceed' ,
106+ variant : PROMPT_VARIANTS . DANGER
102107 } ) ;
103108 if ( response === 'Proceed' ) {
104109 removeUserFromTeam ( {
@@ -127,20 +132,6 @@ const UsersTable: React.FC<UsersTableProps> = ({
127132 return rowData [ columnIndex ] ;
128133 } ;
129134
130- // const fetchAvailableRoles = () => {
131- // axios
132- // .get(process.env.API_ENDPOINT_PREFIX + `/api/identity/orgs/${org_id}/roles?all=true`)
133- // .then((res) => {
134- // let roles = [];
135- // res?.data?.roles?.forEach((role) => roles.push(role?.role_name));
136- // setAvailableRoles(roles);
137- // })
138- // .catch((err) => {
139- // let error = err.response?.data?.message || 'Failed to fetch roles';
140- // handleError(error);
141- // });
142- // };
143-
144135 const removeUserFromTeamModalContent = ( user : string , email : string ) => (
145136 < >
146137 < p > Are you sure you want to remove this user? (This action is irreversible)</ p >
@@ -253,29 +244,12 @@ const UsersTable: React.FC<UsersTableProps> = ({
253244 searchable : false ,
254245 customBodyRender : ( value : string , tableMeta : MUIDataTableMeta ) => (
255246 < Box sx = { { '& > img' : { mr : 2 , flexShrink : 0 } } } >
256- < Grid container alignItems = "center" >
257- < Grid item >
258- < Box sx = { { color : 'text.secondary' , mr : 2 } } >
259- < Avatar
260- onClick = { ( ) => {
261- window . open (
262- `/user/${ getValidColumnValue ( tableMeta . rowData , 'user_id' , columns ) } `
263- ) ;
264- } }
265- alt = { getValidColumnValue ( tableMeta . rowData , 'first_name' , columns ) }
266- src = { value }
267- >
268- { value ? '' : < PersonIcon /> }
269- </ Avatar >
270- </ Box >
271- </ Grid >
272- < Grid item xs >
273- { tableMeta . rowData [ 4 ] } { tableMeta . rowData [ 5 ] }
274- < Typography variant = "body2" color = "text.secondary" >
275- { tableMeta . rowData [ 2 ] }
276- </ Typography >
277- </ Grid >
278- </ Grid >
247+ < UserTableAvatarInfo
248+ userId = { getValidColumnValue ( tableMeta . rowData , 'user_id' , columns ) }
249+ userName = { `${ tableMeta . rowData [ 4 ] } ${ tableMeta . rowData [ 5 ] } ` }
250+ userEmail = { tableMeta . rowData [ 2 ] }
251+ profileUrl = { value }
252+ />
279253 </ Box >
280254 )
281255 }
@@ -440,6 +414,7 @@ const UsersTable: React.FC<UsersTableProps> = ({
440414 tableMeta = { tableMeta }
441415 handleRemoveFromTeam = { handleRemoveFromTeam }
442416 isRemoveFromTeamAllowed = { isRemoveFromTeamAllowed }
417+ theme = { theme }
443418 />
444419 )
445420 }
@@ -457,9 +432,8 @@ const UsersTable: React.FC<UsersTableProps> = ({
457432 } ) ;
458433 return initialVisibility ;
459434 } ) ;
460-
461435 return (
462- < SistentThemeProvider >
436+ < SistentThemeProviderWithoutBaseLine initialMode = { theme ?. palette . mode } >
463437 < div style = { { margin : 'auto' , width : '100%' } } >
464438 < ResponsiveDataTable
465439 columns = { columns }
@@ -469,10 +443,11 @@ const UsersTable: React.FC<UsersTableProps> = ({
469443 tableCols = { tableCols }
470444 updateCols = { updateCols }
471445 columnVisibility = { columnVisibility }
446+ backgroundColor = { theme ?. palette . background . tabs }
472447 />
473448 </ div >
474449 < PromptComponent ref = { ref } />
475- </ SistentThemeProvider >
450+ </ SistentThemeProviderWithoutBaseLine >
476451 ) ;
477452} ;
478453
0 commit comments