teamAvatar.tsx 887 B

12345678910111213141516171819202122232425262728293031323334
  1. import React from 'react';
  2. import BaseAvatar from 'app/components/avatar/baseAvatar';
  3. import {Team} from 'app/types';
  4. import {explodeSlug} from 'app/utils';
  5. type Props = {
  6. team: Team | null;
  7. } & Omit<BaseAvatar['props'], 'uploadPath' | 'uploadId'>;
  8. class TeamAvatar extends React.Component<Props> {
  9. render() {
  10. const {team, tooltip: tooltipProp, ...props} = this.props;
  11. if (!team) {
  12. return null;
  13. }
  14. const slug = (team && team.slug) || '';
  15. const title = explodeSlug(slug);
  16. const tooltip = tooltipProp ?? `#${title}`;
  17. return (
  18. <BaseAvatar
  19. {...props}
  20. type={(team.avatar && team.avatar.avatarType) || 'letter_avatar'}
  21. uploadPath="team-avatar"
  22. uploadId={team.avatar && team.avatar.avatarUuid}
  23. letterId={slug}
  24. tooltip={tooltip}
  25. title={title}
  26. />
  27. );
  28. }
  29. }
  30. export default TeamAvatar;