export default function InboxThreadMention()

in src/views/inbox-threads/inbox-threads__mention.tsx [33:111]


export default function InboxThreadMention({
  thread,
  currentUser,
  uiTheme,
  onNavigate,
}: Props): JSX.Element | null {
  const [isReactionPanelVisible, updateReactionPanelVisible] = useState(false);
  const activity: Activity = thread.messages[0].activities[0];
  activity.author = ApiHelper.convertRelativeUrl(
    activity.author,
    'avatarUrl',
    getApi().config.backendUrl,
  );
  let comment: IssueComment | null | undefined;
  let text: string | null | undefined;

  if (isActivityCategory.commentMention(activity)) {
    comment = activity.comment;
    text = comment?.text;
  } else if (isActivityCategory.issueMention(activity)) {
    text = activity?.issue?.description;
  } else if (isActivityCategory.articleCommentMention(activity)) {
    comment = activity?.comment;
    text = comment?.text;
  } else if (isActivityCategory.articleMention(activity)) {
    text = activity?.article?.content;
  }

  const target = thread.subject.target;
  return text ? (
    <>
      <ThreadItem
        author={activity.author}
        avatar={
          <Avatar
            userName={getEntityPresentation(activity.author)}
            size={30}
            source={{
              uri: activity.author.avatarUrl,
            }}
          />
        }
        avatarStyle={styles.avatarComment}
        change={
          <>
            <TouchableOpacity
              onPress={() => {
                onNavigate(
                  target.issue || target.article,
                  activity.id,
                  comment?.id,
                );
              }}
            >
              <StreamComment
                activity={{
                  added: [comment],
                }}
              />
            </TouchableOpacity>
            {!!comment && (
              <ThreadCommentReactions
                activity={activity}
                currentUser={currentUser}
                isPanelVisible={isReactionPanelVisible}
              />
            )}
          </>
        }
        reason={i18n('mentioned you')}
        timestamp={thread.notified}
      />
      <ThreadAddReactionButton
        style={styles.threadReactionsAddButton}
        onPress={() => updateReactionPanelVisible(true)}
      />
    </>
  ) : null;
}