function renderRows()

in pages/milestones/[milestone].js [92:164]


function renderRows({ data }) {
  const rows = [];
  const colSpan = 7;

  if (!data) {
    return (
      <tr>
        <td colSpan={colSpan}>Loading...</td>
      </tr>
    );
  }

  if (data.length === 0) {
    return (
      <tr>
        <td colSpan={colSpan}>
          <p>There are no issues associated with this milestone yet.</p>
        </td>
      </tr>
    );
  }
  for (let i = 0; i < data.length; i++) {
    const issue = data[i] || {};
    rows.push(
      <tr key={`issue-${i}`}>
        <td className="assignee">{renderAssignee(issue)}</td>
        <td>
          <span className={issue.priority || 'unprioritized'}>
            {issue.priority ? issue.priority.toUpperCase() : <AlertIcon />}
          </span>
        </td>
        <td>
          <a
            className="issueLink"
            href={issue.url}
            target="_blank"
            rel="noopener noreferrer"
          >
            <strong>#{issue.number}:</strong> {issue.title}{' '}
            <LinkIcon verticalAlign="middle" />
          </a>
          {issue.hasProject ? (
            <a
              href={issue.projectUrl}
              target="_blank"
              rel="noopener noreferrer"
              className="projectLink"
            >
              {issue.projectName}
            </a>
          ) : null}
        </td>
        <td>{issue.repository.name.replace('addons-', '')}</td>
        <td>
          <TimeAgo date={issue.updatedAt} />
        </td>
        <td>
          <span
            className="label"
            style={{
              backgroundColor: issue.stateLabelColor,
              color: issue.stateLabelTextColor,
            }}
          >
            {issue.stateLabel}
          </span>
        </td>
        <td className="reviewers">{renderReviewers(issue)}</td>
      </tr>,
    );
  }
  return rows;
}