mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 00:15:44 +01:00
render tags
This commit is contained in:
@@ -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));
|
||||||
|
|||||||
32
scm-ui/src/repos/components/changesets/ChangesetTag.js
Normal file
32
scm-ui/src/repos/components/changesets/ChangesetTag.js
Normal 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);
|
||||||
Reference in New Issue
Block a user