import React from 'react'; export interface IssueCardProps { card: any } export class IssueCard extends React.PureComponent { render() { const { card } = this.props; const issueURLInfo = extractInfoFromIssueURL(card.issue.url); const projectURL = `${issueURLInfo.baseURL}/${issueURLInfo.owner}/${issueURLInfo.projectName}`; const issueURL = `${projectURL}/issues/${card.issue.number}`; return (
{ card.issue.assignee ?
Image
{`@${card.issue.assignee.login}`}
: null }

{`#${card.issue.number}`}  { card.issue.milestone ? {`- ${card.issue.milestone.title}`} : null }
{card.issue.title}

{card.project}
); } } function extractInfoFromIssueURL(issueURL: string): any|void { const pattern = /^(https?:\/\/[^\/]+)\/api\/v1\/repos\/([^\/]+)\/([^\/]+)\/.*$/; const matches = pattern.exec(issueURL); if (!matches) return; return { baseURL: matches[1], owner: matches[2], projectName: matches[3], }; }