render tags

This commit is contained in:
Sebastian Sdorra
2018-10-17 13:22:06 +02:00
parent efb857150b
commit 3429f17670
2 changed files with 54 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ import ChangesetId from "./ChangesetId";
import injectSheet from "react-jss"; import injectSheet from "react-jss";
import { DateFromNow } from "@scm-manager/ui-components"; import { DateFromNow } from "@scm-manager/ui-components";
import ChangesetAuthor from "./ChangesetAuthor"; import ChangesetAuthor from "./ChangesetAuthor";
import ChangesetTag from "./ChangesetTag";
const styles = { const styles = {
pointer: { pointer: {
@@ -34,11 +35,17 @@ class ChangesetRow extends React.Component<Props> {
return <ChangesetId changeset={changeset} repository={repository} />; return <ChangesetId changeset={changeset} repository={repository} />;
}; };
getTags = () => {
const { changeset } = this.props;
return changeset._embedded.tags || [];
};
render() { render() {
const { changeset, classes } = this.props; const { changeset, classes } = this.props;
const changesetLink = this.createLink(changeset); const changesetLink = this.createLink(changeset);
const dateFromNow = <DateFromNow date={changeset.date} />; const dateFromNow = <DateFromNow date={changeset.date} />;
const authorLine = <ChangesetAuthor changeset={changeset} />; const authorLine = <ChangesetAuthor changeset={changeset} />;
return ( return (
<article className={classNames("media", classes.inner)}> <article className={classNames("media", classes.inner)}>
<ChangesetAvatar changeset={changeset} /> <ChangesetAvatar changeset={changeset} />
@@ -56,9 +63,24 @@ class ChangesetRow extends React.Component<Props> {
<div className="is-size-7">{authorLine}</div> <div className="is-size-7">{authorLine}</div>
</div> </div>
</div> </div>
{this.renderTags()}
</article> </article>
); );
} }
renderTags = () => {
const tags = this.getTags();
if (tags.length > 0) {
return (
<div className="media-right">
{tags.map((tag: Tag) => {
return <ChangesetTag tag={tag} />;
})}
</div>
);
}
return null;
};
} }
export default injectSheet(styles)(translate("repos")(ChangesetRow)); export default injectSheet(styles)(translate("repos")(ChangesetRow));

View File

@@ -0,0 +1,32 @@
//@flow
import React from "react";
import type { Tag } from "@scm-manager/ui-types";
import injectSheet from "react-jss";
import classNames from "classnames";
const styles = {
spacing: {
marginRight: "4px"
}
};
type Props = {
tag: Tag,
// context props
classes: Object
};
class ChangesetTag extends React.Component<Props> {
render() {
const { tag, classes } = this.props;
return (
<span className="tag is-info">
<span className={classNames("fa", "fa-tag", classes.spacing)} />{" "}
{tag.name}
</span>
);
}
}
export default injectSheet(styles)(ChangesetTag);