import * as React from 'react'; import * as Sentry from '@sentry/react'; import TeamAvatar from 'app/components/avatar/teamAvatar'; import UserAvatar from 'app/components/avatar/userAvatar'; import Tooltip from 'app/components/tooltip'; import MemberListStore from 'app/stores/memberListStore'; import TeamStore from 'app/stores/teamStore'; import {Actor} from 'app/types'; type DefaultProps = { hasTooltip: boolean; size: number; }; type Props = DefaultProps & { actor: Actor; default?: string; title?: string; gravatar?: boolean; className?: string; onClick?: () => void; suggested?: boolean; tooltip?: React.ReactNode; tooltipOptions?: Omit; }; class ActorAvatar extends React.Component { static defaultProps: DefaultProps = { size: 24, hasTooltip: true, }; render() { const {actor, ...props} = this.props; if (actor.type === 'user') { const user = actor.id ? MemberListStore.getById(actor.id) ?? actor : actor; return ; } if (actor.type === 'team') { const team = TeamStore.getById(actor.id); return ; } Sentry.withScope(scope => { scope.setExtra('actor', actor); Sentry.captureException(new Error('Unknown avatar type')); }); return null; } } export default ActorAvatar;