changed BranchView component to container and simplified BranchTable with new BranchRow

This commit is contained in:
Florian Scholdei
2019-03-29 10:02:53 +01:00
parent fe510d592a
commit 07948b51a8
4 changed files with 62 additions and 23 deletions

View File

@@ -0,0 +1,25 @@
// @flow
import React from "react";
import { Link } from "react-router-dom";
import type { Branch } from "@scm-manager/ui-types";
type Props = {
baseUrl: string,
branch: Branch
};
export default class BranchRow extends React.Component<Props> {
renderLink(to: string, label: string) {
return <Link to={to}>{label} <span className="tag is-dark">Default</span></Link>;
}
render() {
const { baseUrl, branch } = this.props;
const to = `${baseUrl}/${encodeURIComponent(branch.name)}/info`;
return (
<tr>
<td>{this.renderLink(to, branch.name)}</td>
</tr>
);
}
}

View File

@@ -1,8 +1,8 @@
// @flow // @flow
import React from "react"; import React from "react";
import { translate } from "react-i18next"; import { translate } from "react-i18next";
import BranchRow from "./BranchRow";
import type { Branch } from "@scm-manager/ui-types"; import type { Branch } from "@scm-manager/ui-types";
import { Link } from "react-router-dom";
type Props = { type Props = {
baseUrl: string, baseUrl: string,
@@ -10,31 +10,31 @@ type Props = {
branches: Branch[] branches: Branch[]
}; };
class UserTable extends React.Component<Props> { class BranchTable extends React.Component<Props> {
render() { render() {
const { baseUrl, branches, t } = this.props; const { t } = this.props;
return ( return (
<table className="card-table table is-hoverable is-fullwidth"> <table className="card-table table is-hoverable is-fullwidth">
<thead> <thead>
<tr> <tr>
<th>{t("branches.table.branches")}</th> <th>{t("branches.table.branches")}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>{this.renderRow()}</tbody>
{branches.map((branch, index) => {
const to = `${baseUrl}/${encodeURIComponent(branch.name)}/info`;
return (
<tr>
<td key={index}>
<Link to={to}>{branch.name}</Link>
</td>
</tr>
);
})}
</tbody>
</table> </table>
); );
} }
renderRow() {
const { baseUrl, branches } = this.props;
let rowContent = null;
if (branches) {
rowContent = branches.map((branch, index) => {
return <BranchRow key={index} baseUrl={baseUrl} branch={branch} />;
});
}
return rowContent;
}
} }
export default translate("users")(UserTable); export default translate("users")(BranchTable);

View File

@@ -1,12 +1,15 @@
// @flow // @flow
import React from "react"; import React from "react";
import BranchDetailTable from "./BranchDetailTable"; import BranchDetailTable from "../components/BranchDetailTable";
import { ExtensionPoint } from "@scm-manager/ui-extensions"; import { ExtensionPoint } from "@scm-manager/ui-extensions";
import type { Repository, Branch } from "@scm-manager/ui-types"; import type { Repository, Branch } from "@scm-manager/ui-types";
import {connect} from "react-redux";
import {translate} from "react-i18next";
import {getBranch} from "../../modules/branches";
type Props = { type Props = {
repository: Repository, repository: Repository,
branch?: Branch // TODO: get branch from props branch: Branch // TODO: get branch from props
}; };
class BranchView extends React.Component<Props> { class BranchView extends React.Component<Props> {
@@ -28,4 +31,15 @@ class BranchView extends React.Component<Props> {
} }
} }
export default BranchView; const mapStateToProps = (state, ownProps) => {
const { repository } = ownProps;
const branch = getBranch(state, repository, "VisualStudio"); // TODO: !!!
return {
repository,
branch
};
};
export default connect(
mapStateToProps
)(translate("repos")(BranchView));

View File

@@ -24,7 +24,7 @@ import { translate } from "react-i18next";
import RepositoryDetails from "../components/RepositoryDetails"; import RepositoryDetails from "../components/RepositoryDetails";
import EditRepo from "./EditRepo"; import EditRepo from "./EditRepo";
import BranchesOverview from "../branches/containers/BranchesOverview"; import BranchesOverview from "../branches/containers/BranchesOverview";
import BranchView from "../branches/components/BranchView"; import BranchView from "../branches/containers/BranchView";
import CreateBranch from "../branches/containers/CreateBranch"; import CreateBranch from "../branches/containers/CreateBranch";
import Permissions from "../permissions/containers/Permissions"; import Permissions from "../permissions/containers/Permissions";