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
import React from "react";
import { translate } from "react-i18next";
import BranchRow from "./BranchRow";
import type { Branch } from "@scm-manager/ui-types";
import { Link } from "react-router-dom";
type Props = {
baseUrl: string,
@@ -10,31 +10,31 @@ type Props = {
branches: Branch[]
};
class UserTable extends React.Component<Props> {
class BranchTable extends React.Component<Props> {
render() {
const { baseUrl, branches, t } = this.props;
const { t } = this.props;
return (
<table className="card-table table is-hoverable is-fullwidth">
<thead>
<tr>
<th>{t("branches.table.branches")}</th>
</tr>
<tr>
<th>{t("branches.table.branches")}</th>
</tr>
</thead>
<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>
<tbody>{this.renderRow()}</tbody>
</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
import React from "react";
import BranchDetailTable from "./BranchDetailTable";
import BranchDetailTable from "../components/BranchDetailTable";
import { ExtensionPoint } from "@scm-manager/ui-extensions";
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 = {
repository: Repository,
branch?: Branch // TODO: get branch from props
branch: Branch // TODO: get branch from 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 EditRepo from "./EditRepo";
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 Permissions from "../permissions/containers/Permissions";