@@ -3,57 +3,66 @@ import {useNavigate} from 'react-router-dom';
33import { useCurrentUser } from '../authentication' ;
44import { canManageGroup , isGroupOwner } from '../authorization' ;
55import Chip from '@mui/material/Chip' ;
6+ import Tooltip from '@mui/material/Tooltip' ;
67
78export interface MembershipChipProps {
8- user : OktaUserGroupMember ;
9+ okta_user_group_member : OktaUserGroupMember ;
910 group : PolymorphicGroup ;
1011 removeRoleGroup : ( roleGroup : RoleGroup ) => void ;
1112 removeDirectAccessAsUser : ( ) => void ;
1213 removeDirectAccessAsGroupManager : ( ) => void ;
1314}
1415
1516export default function MembershipChip ( {
16- user ,
17+ okta_user_group_member ,
1718 group,
1819 removeRoleGroup,
1920 removeDirectAccessAsUser,
2021 removeDirectAccessAsGroupManager,
2122} : MembershipChipProps ) {
2223 const navigate = useNavigate ( ) ;
2324 const currentUser = useCurrentUser ( ) ;
24- const activeRoleGroup = user . active_role_group_mapping ?. active_role_group ;
25+ const activeRoleGroup = okta_user_group_member . active_role_group_mapping ?. active_role_group ;
26+ const ending_date = okta_user_group_member . ended_at ?? 'Never' ;
2527 const canManageUserRoleGroup = activeRoleGroup ?. id ? isGroupOwner ( currentUser , activeRoleGroup . id ) : false ;
2628 const canManageThisGroup = group . is_managed && canManageGroup ( currentUser , group ) ;
27- const canManageThisUser = group . is_managed && currentUser . id === user . active_user ?. id ;
29+ const canManageThisUser = group . is_managed && currentUser . id === okta_user_group_member . active_user ?. id ;
30+
31+ const moveTooltip = { modifiers : [ { name : 'offset' , options : { offset : [ 0 , - 10 ] } } ] } ;
32+
2833 return activeRoleGroup ? (
29- < Chip
30- label = { activeRoleGroup . name }
31- variant = "outlined"
32- color = "primary"
33- onClick = { ( ) => navigate ( `/roles/${ activeRoleGroup . name } ` ) }
34- onDelete = {
35- canManageThisGroup || canManageUserRoleGroup
36- ? ( ) => {
37- removeRoleGroup ( activeRoleGroup ) ;
38- }
39- : undefined
40- }
41- />
42- ) : (
43- < Chip
44- label = "Direct"
45- color = "primary"
46- onDelete = {
47- canManageThisUser
48- ? ( ) => {
49- removeDirectAccessAsUser ( ) ;
50- }
51- : canManageThisGroup
34+ < Tooltip title = { ending_date } placement = "right" PopperProps = { moveTooltip } >
35+ < Chip
36+ label = { activeRoleGroup . name }
37+ variant = "outlined"
38+ color = "primary"
39+ onClick = { ( ) => navigate ( `/roles/${ activeRoleGroup . name } ` ) }
40+ onDelete = {
41+ canManageThisGroup || canManageUserRoleGroup
5242 ? ( ) => {
53- removeDirectAccessAsGroupManager ( ) ;
43+ removeRoleGroup ( activeRoleGroup ) ;
5444 }
5545 : undefined
56- }
57- />
46+ }
47+ />
48+ </ Tooltip >
49+ ) : (
50+ < Tooltip title = { ending_date } placement = "right" PopperProps = { moveTooltip } >
51+ < Chip
52+ label = "Direct"
53+ color = "primary"
54+ onDelete = {
55+ canManageThisUser
56+ ? ( ) => {
57+ removeDirectAccessAsUser ( ) ;
58+ }
59+ : canManageThisGroup
60+ ? ( ) => {
61+ removeDirectAccessAsGroupManager ( ) ;
62+ }
63+ : undefined
64+ }
65+ />
66+ </ Tooltip >
5867 ) ;
5968}
0 commit comments