renderWorkItems()

in src/app/period-statistics.js [89:129]


  renderWorkItems(workItems) {
    const navigateToIssue = workItem =>
      () => window.open(this.issueUrl(workItem), '_top');

    const trimString = str => {
      const maxAllowedLength = 30;
      const delta = 3;
      return str.length <= (maxAllowedLength + delta)
        ? str
        : `${str.substring(0, maxAllowedLength).trim()}...`;
    };

    return (
      workItems.map(workItem => (
        <div
          key={`work-item-${workItem.id}`}
        >
          <div
            className="personal-time-tracking__work-item"
            onClick={navigateToIssue(workItem)}
          >
            <span>
              {this.workItemText(workItem)}
            </span>
            <Tooltip title={trimString(workItem.issue.summary)}>
              <Link
                pseudo={true}
                target={'_top'}
                className={
                  this.getIssueLinkClassName(workItem, 'issue-id')
                }
                href={this.issueUrl(workItem)}
              >
                {`${workItem.issue.idReadable}`}
              </Link>
            </Tooltip>
          </div>
        </div>
      ))
    );
  }