added defaultbranchtag component

This commit is contained in:
Florian Scholdei
2019-04-03 08:52:29 +02:00
parent 81d25e74eb
commit b1d631fe57
5 changed files with 55 additions and 51 deletions

View File

@@ -63,7 +63,8 @@
"branch": { "branch": {
"name": "Name:", "name": "Name:",
"commits": "Commits", "commits": "Commits",
"sources": "Sources" "sources": "Sources",
"defaultTag": "Default"
}, },
"changesets": { "changesets": {
"errorTitle": "Fehler", "errorTitle": "Fehler",

View File

@@ -63,7 +63,8 @@
"branch": { "branch": {
"name": "Name:", "name": "Name:",
"commits": "Commits", "commits": "Commits",
"sources": "Sources" "sources": "Sources",
"defaultTag": "Default"
}, },
"changesets": { "changesets": {
"errorTitle": "Error", "errorTitle": "Error",

View File

@@ -2,23 +2,14 @@
import React from "react"; import React from "react";
import type { Repository, Branch } from "@scm-manager/ui-types"; import type { Repository, Branch } from "@scm-manager/ui-types";
import { translate } from "react-i18next"; import { translate } from "react-i18next";
import injectSheet from "react-jss";
import classNames from "classnames";
import BranchButtonGroup from "./BranchButtonGroup"; import BranchButtonGroup from "./BranchButtonGroup";
import DefaultBranchTag from "./DefaultBranchTag";
type Props = { type Props = {
repository: Repository, repository: Repository,
branch: Branch, branch: Branch,
// context props // context props
t: string => string, t: string => string
classes: any
};
const styles = {
tag: {
marginLeft: "0.75rem",
verticalAlign: "inherit"
}
}; };
class BranchDetail extends React.Component<Props> { class BranchDetail extends React.Component<Props> {
@@ -27,25 +18,16 @@ class BranchDetail extends React.Component<Props> {
return ( return (
<div className="media"> <div className="media">
<div className="media-content subtitle"><strong>{t("branch.name")}</strong> {branch.name} {this.renderDefaultBranch()}</div> <div className="media-content subtitle">
<strong>{t("branch.name")}</strong> {branch.name}{" "}
<DefaultBranchTag defaultBranch={branch.defaultBranch} />
</div>
<div className="media-right"> <div className="media-right">
<BranchButtonGroup repository={repository} branch={branch} /> <BranchButtonGroup repository={repository} branch={branch} />
</div> </div>
</div> </div>
); );
} }
renderDefaultBranch() {
const { branch, classes } = this.props;
let defaultLabel = null;
if (branch.defaultBranch) {
defaultLabel = (
<span className={classNames("tag is-dark", classes.tag)}>Default</span>
);
}
return defaultLabel;
}
} }
export default injectSheet(styles)(translate("repos")(BranchDetail)); export default translate("repos")(BranchDetail);

View File

@@ -2,33 +2,18 @@
import React from "react"; import React from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import type { Branch } from "@scm-manager/ui-types"; import type { Branch } from "@scm-manager/ui-types";
import injectSheet from "react-jss"; import DefaultBranchTag from "./DefaultBranchTag";
import classNames from "classnames";
type Props = { type Props = {
baseUrl: string, baseUrl: string,
branch: Branch, branch: Branch
classes: any
};
const styles = {
tag: {
marginLeft: "0.75rem",
verticalAlign: "inherit"
}
}; };
class BranchRow extends React.Component<Props> { class BranchRow extends React.Component<Props> {
renderLink(to: string, label: string, defaultBranch?: boolean) { renderLink(to: string, label: string, defaultBranch?: boolean) {
const { classes } = this.props;
let showLabel = null;
if (defaultBranch) {
showLabel = <span className={classNames("tag is-dark", classes.tag)}>Default</span>;
}
return ( return (
<Link to={to}> <Link to={to}>
{label} {showLabel} {label} <DefaultBranchTag defaultBranch={defaultBranch} />
</Link> </Link>
); );
} }
@@ -36,12 +21,12 @@ class BranchRow extends React.Component<Props> {
render() { render() {
const { baseUrl, branch } = this.props; const { baseUrl, branch } = this.props;
const to = `${baseUrl}/${encodeURIComponent(branch.name)}/info`; const to = `${baseUrl}/${encodeURIComponent(branch.name)}/info`;
return ( return (
<tr> <tr>
<td>{this.renderLink(to, branch.name, branch.defaultBranch)}</td> <td>{this.renderLink(to, branch.name, branch.defaultBranch)}</td>
</tr> </tr>
); );
} }
} }
export default injectSheet(styles)(BranchRow); export default BranchRow;

View File

@@ -0,0 +1,35 @@
//@flow
import React from "react";
import injectSheet from "react-jss";
import classNames from "classnames";
import { translate } from "react-i18next";
type Props = {
defaultBranch?: boolean,
classes: any,
t: string => string
};
const styles = {
tag: {
marginLeft: "0.75rem",
verticalAlign: "inherit"
}
};
class DefaultBranchTag extends React.Component<Props> {
render() {
const { defaultBranch, classes, t } = this.props;
if (defaultBranch) {
return (
<span className={classNames("tag is-dark", classes.tag)}>
{t("branch.defaultTag")}
</span>
);
}
return null;
}
}
export default injectSheet(styles)(translate("repos")(DefaultBranchTag));