/*! * Copyright (c) 2024 PLANKA Software GmbH * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md */ import React, { useMemo } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { useSelector } from 'react-redux'; import { useTranslation } from 'react-i18next'; import { Button, Icon, Table } from 'semantic-ui-react'; import selectors from '../../../../selectors'; import { usePopupInClosableContext } from '../../../../hooks'; import { UserRoleIcons } from '../../../../constants/Icons'; import ActionsStep from './ActionsStep'; import UserAvatar from '../../../users/UserAvatar'; import styles from './Item.module.scss'; const Item = React.memo(({ id }) => { const selectUserById = useMemo(() => selectors.makeSelectUserById(), []); const user = useSelector((state) => selectUserById(state, id)); const [t] = useTranslation(); const ActionsPopup = usePopupInClosableContext(ActionsStep); return ( {user.name} {user.username || '-'} {user.email} {t(`common.${user.role}`)} ); }); Item.propTypes = { id: PropTypes.string.isRequired, }; export default Item;