in packages/issue-dashboard-widgets/widgets/youtrack-issues-list/app/content.js [78:135]
renderWidgetBody() {
const {
issues,
youTrack,
isNextPageLoading,
dateFormats
} = this.props;
const {expandedIssueId} = this.state;
const homeUrl = youTrack ? youTrack.homeUrl : '';
const loadMoreCount = this.getLoadMoreCount();
const setExpandedIssueId = issueId =>
evt => {
if (evt.target && evt.target.href) {
return;
}
const isAlreadyExpanded = issueId === expandedIssueId;
this.setState({expandedIssueId: isAlreadyExpanded ? null : issueId});
};
return (
<div className="issues-list-widget">
{
(issues || []).map(issue => (
<div
key={`issue-${issue.id}`}
onClick={setExpandedIssueId(issue.id)}
>
<IssueLine
issue={issue}
homeUrl={homeUrl}
expanded={expandedIssueId === issue.id}
dateFormats={dateFormats}
/>
</div>
))
}
{
loadMoreCount > 0 && !isNextPageLoading &&
(
<div
onClick={this.props.onLoadMore}
className="issues-list-widget__load-more"
>
<Link pseudo>
{
i18n.plural(loadMoreCount, 'Load 1 more issue', 'Load {{$count}} more issues')
}
</Link>
</div>
)
}
{
isNextPageLoading && <LoaderInline/>
}
</div>
);
}