This commit is contained in:
Eduard Heimbuch
2019-06-25 13:57:30 +02:00
9 changed files with 87 additions and 55 deletions

View File

@@ -0,0 +1,29 @@
// @flow
import * as React from "react";
import classNames from "classnames";
type Props = {
className?: string,
children: React.Node
};
class ButtonAddons extends React.Component<Props> {
render() {
const { className, children } = this.props;
const childWrapper = [];
React.Children.forEach(children, child => {
if (child) {
childWrapper.push(<p className="control">{child}</p>);
}
});
return (
<div className={classNames("field", "has-addons", className)}>
{childWrapper}
</div>
);
}
}
export default ButtonAddons;

View File

@@ -1,30 +1,26 @@
// @flow
import * as React from "react";
import classNames from "classnames";
type Props = {
addons?: boolean,
className?: string,
children: React.Node
};
class ButtonGroup extends React.Component<Props> {
static defaultProps = {
addons: true
};
render() {
const { addons, className, children } = this.props;
let styleClasses = "buttons";
if (addons) {
styleClasses += " has-addons";
}
if (className) {
styleClasses += " " + className;
}
const { className, children } = this.props;
const childWrapper = [];
React.Children.forEach(children, child => {
if (child) {
childWrapper.push(<p className="control">{child}</p>);
}
});
return (
<div className={styleClasses}>
{ children }
<div className={classNames("field", "is-grouped", className)}>
{childWrapper}
</div>
);
}

View File

@@ -8,6 +8,7 @@ export { default as EditButton } from "./EditButton.js";
export { default as SubmitButton } from "./SubmitButton.js";
export { default as DownloadButton } from "./DownloadButton.js";
export { default as ButtonGroup } from "./ButtonGroup.js";
export { default as ButtonAddons } from "./ButtonAddons.js";
export {
default as RemoveEntryOfTableButton
} from "./RemoveEntryOfTableButton.js";

View File

@@ -11,7 +11,7 @@ import {
import injectSheets from "react-jss";
import classNames from "classnames";
import { translate } from "react-i18next";
import { Button } from "../buttons";
import { ButtonGroup, Button } from "../buttons";
const styles = {
panel: {
@@ -241,20 +241,25 @@ class DiffFile extends React.Component<Props, State> {
{this.renderChangeTag(file)}
</div>
<div className={classNames("level-right", classes.buttonHeader)}>
<Button action={this.toggleSideBySide} className="reduced-mobile">
<span className="icon is-small">
<i
className={classNames(
"fas",
sideBySide ? "fa-align-left" : "fa-columns"
)}
/>
</span>
<span>
{t(sideBySide ? "diff.combined" : "diff.sideBySide")}
</span>
</Button>
{fileControls}
<ButtonGroup>
<Button
action={this.toggleSideBySide}
className="reduced-mobile"
>
<span className="icon is-small">
<i
className={classNames(
"fas",
sideBySide ? "fa-align-left" : "fa-columns"
)}
/>
</span>
<span>
{t(sideBySide ? "diff.combined" : "diff.sideBySide")}
</span>
</Button>
{fileControls}
</ButtonGroup>
</div>
</div>
</div>

View File

@@ -1,8 +1,7 @@
//@flow
import React from "react";
import type { Changeset, Repository } from "@scm-manager/ui-types";
import ButtonGroup from "../../buttons/ButtonGroup";
import Button from "../../buttons/Button";
import { ButtonAddons, Button } from "../../buttons";
import { createChangesetLink, createSourcesLink } from "./changesets";
import { translate } from "react-i18next";
@@ -22,7 +21,7 @@ class ChangesetButtonGroup extends React.Component<Props> {
const sourcesLink = createSourcesLink(repository, changeset);
return (
<ButtonGroup className="is-pulled-right">
<ButtonAddons className="is-pulled-right">
<Button link={changesetLink} className="reduced-mobile">
<span className="icon">
<i className="fas fa-exchange-alt" />
@@ -35,7 +34,7 @@ class ChangesetButtonGroup extends React.Component<Props> {
</span>
<span>{t("changeset.buttons.sources")}</span>
</Button>
</ButtonGroup>
</ButtonAddons>
);
}
}