import moment from 'moment' import { type Dispatch, type SetStateAction, useCallback } from 'react' import { useTranslation } from 'react-i18next' import { User } from '../../../../../../types/group-management/user' import Badge from '../../../../shared/components/badge' import Tooltip from '../../../../shared/components/tooltip' import type { ManagedUserAlert } from '../../utils/types' import { useGroupMembersContext } from '../../context/group-members-context' import ManagedUserStatus from './managed-user-status' import ManagedUserDropdownButton from './managed-user-dropdown-button' type ManagedUserRowProps = { user: User openOffboardingModalForUser: (user: User) => void groupId: string setManagedUserAlert: Dispatch> } export default function ManagedUserRow({ user, openOffboardingModalForUser, setManagedUserAlert, groupId, }: ManagedUserRowProps) { const { t } = useTranslation() const { selectedUsers, selectUser, unselectUser } = useGroupMembersContext() const handleSelectUser = useCallback( (event, user) => { if (event.target.checked) { selectUser(user) } else { unselectUser(user) } }, [selectUser, unselectUser] ) const selected = selectedUsers.includes(user) return ( handleSelectUser(e, user)} /> {user.email} {user.invite ? (   {t('pending_invite')} ) : ( '' )} {user.isEntityAdmin && (