managed-user-dropdown-button.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { Dropdown, MenuItem } from 'react-bootstrap'
  2. import { User } from '../../../../../../types/group-management/user'
  3. import ControlledDropdown from '../../../../shared/components/controlled-dropdown'
  4. import { useTranslation } from 'react-i18next'
  5. import MenuItemButton from '../../../project-list/components/dropdown/menu-item-button'
  6. type ManagedUserDropdownButtonProps = {
  7. user: User
  8. openOffboardingModalForUser: (user: User) => void
  9. }
  10. export default function ManagedUserDropdownButton({
  11. user,
  12. openOffboardingModalForUser,
  13. }: ManagedUserDropdownButtonProps) {
  14. const { t } = useTranslation()
  15. const onDeleteUserClick = () => {
  16. openOffboardingModalForUser(user)
  17. }
  18. return (
  19. <>
  20. <ControlledDropdown id={`managed-user-dropdown-${user._id}`}>
  21. <Dropdown.Toggle
  22. bsStyle={null}
  23. className="btn btn-link action-btn"
  24. noCaret
  25. >
  26. <i
  27. className="fa fa-ellipsis-v"
  28. aria-hidden="true"
  29. aria-label={t('actions')}
  30. />
  31. </Dropdown.Toggle>
  32. <Dropdown.Menu className="dropdown-menu-right">
  33. {user.enrollment ? (
  34. <MenuItemButton
  35. className="delete-user-action"
  36. onClick={onDeleteUserClick}
  37. >
  38. {t('delete_user')}
  39. </MenuItemButton>
  40. ) : (
  41. <MenuItem className="no-actions-available">
  42. <span className="text-muted">{t('no_actions')}</span>
  43. </MenuItem>
  44. )}
  45. </Dropdown.Menu>
  46. </ControlledDropdown>
  47. </>
  48. )
  49. }