src/app/content-sprint-activity.js (36 lines of code) (raw):
import React from 'react';
import Link from '@jetbrains/ring-ui/components/link/link';
import ContentDefaultActivity from './content-default-activity';
import './style/activities-widget.scss';
import filter from './activities-filter';
class ContentSprintActivity extends ContentDefaultActivity {
// eslint-disable-next-line react/display-name
renderSprintLink = (sprint, removed) => (
<span key={`${sprint.id}-${removed}`}>
<Link
href={`${filter.youTrackUrl}agiles/${sprint.agile.id}/${sprint.id}`}
className={removed ? 'aw__activity__change__removed' : ''}
>
{sprint.name}
</Link>
</span>
);
// eslint-disable-next-line react/display-name
renderContent = activity => {
const fieldName = activity.field.presentation;
const wasRemovedOne = activity.removed && activity.removed.length === 1;
const wasAddedOne = activity.added && activity.added.length === 1;
return (
<div key={activity.id}>
<span>
<span className="aw__activity__change__field-name">
{`${fieldName}:`}
</span>
{activity.removed.map(sprint =>
this.renderSprintLink(sprint, true))
}
{wasRemovedOne && wasAddedOne && ' \u27F6 '}
{activity.added.map(sprint =>
this.renderSprintLink(sprint, false))
}
</span>
</div>
);
}
}
export default ContentSprintActivity;