import { withTranslation } from 'react-i18next';
import { useNavigate } from 'react-router-dom';
-import { getAvatarUrl } from '../../helpers/User';
+import { getAvatarUrl, getUserName } from '../../helpers/User';
import i18n from '../../i18n';
-const Box = ({ discriminator, user }) => {
+const Box = ({ discriminator, noLink, user }) => {
const navigate = useNavigate();
if (!user) {
return <span>{i18n.t('general.anonymous')}</span>;
}
- return <Button
- className="user-box"
- onClick={() => navigate(`/users/${user.id}`)}
- variant="link"
- >
+ const content = <>
<img alt="" src={getAvatarUrl(user)} />
- <span>{user.username}</span>
- {discriminator ?
+ <span>{discriminator ? user.username : getUserName(user)}</span>
+ {discriminator && user.discriminator && user.discriminator !== '0' ?
<span className="text-muted">
{'#'}
{user.discriminator}
</span>
: null}
+ </>;
+
+ if (noLink) {
+ return <span className="user-box">{content}</span>;
+ }
+
+ return <Button
+ className="user-box"
+ onClick={() => navigate(`/users/${user.id}`)}
+ variant="link"
+ >
+ {content}
</Button>;
};
Box.propTypes = {
discriminator: PropTypes.bool,
+ noLink: PropTypes.bool,
user: PropTypes.shape({
discriminator: PropTypes.string,
id: PropTypes.string,
+ nickname: PropTypes.string,
username: PropTypes.string,
}),
};