diff --git a/scm-plugins/scm-git-plugin/src/main/js/ProtocolInformation.js b/scm-plugins/scm-git-plugin/src/main/js/ProtocolInformation.js index e4a1c451d3..3c6a864dee 100644 --- a/scm-plugins/scm-git-plugin/src/main/js/ProtocolInformation.js +++ b/scm-plugins/scm-git-plugin/src/main/js/ProtocolInformation.js @@ -1,6 +1,6 @@ //@flow import React from "react"; -import { ButtonGroup, Button } from "@scm-manager/ui-components"; +import { ButtonAddons, Button } from "@scm-manager/ui-components"; import type { Repository } from "@scm-manager/ui-types"; import CloneInformation from "./CloneInformation"; import type { Link } from "@scm-manager/ui-types"; @@ -95,9 +95,9 @@ class ProtocolInformation extends React.Component { return (
- + {protocols.map(this.renderProtocolButton)} - + { cloneInformation }
); diff --git a/scm-ui-components/packages/ui-components/src/buttons/ButtonAddons.js b/scm-ui-components/packages/ui-components/src/buttons/ButtonAddons.js new file mode 100644 index 0000000000..5b248d64af --- /dev/null +++ b/scm-ui-components/packages/ui-components/src/buttons/ButtonAddons.js @@ -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 { + render() { + const { className, children } = this.props; + + const childWrapper = []; + React.Children.forEach(children, child => { + if (child) { + childWrapper.push(

{child}

); + } + }); + + return ( +
+ {childWrapper} +
+ ); + } +} + +export default ButtonAddons; diff --git a/scm-ui-components/packages/ui-components/src/buttons/ButtonGroup.js b/scm-ui-components/packages/ui-components/src/buttons/ButtonGroup.js index fb48a3ba4f..2dcb56047c 100644 --- a/scm-ui-components/packages/ui-components/src/buttons/ButtonGroup.js +++ b/scm-ui-components/packages/ui-components/src/buttons/ButtonGroup.js @@ -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 { - - 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(

{child}

); + } + }); + return ( -
- { children } +
+ {childWrapper}
); } diff --git a/scm-ui-components/packages/ui-components/src/buttons/index.js b/scm-ui-components/packages/ui-components/src/buttons/index.js index 014d92958d..49dfaab5d2 100644 --- a/scm-ui-components/packages/ui-components/src/buttons/index.js +++ b/scm-ui-components/packages/ui-components/src/buttons/index.js @@ -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"; diff --git a/scm-ui-components/packages/ui-components/src/repos/DiffFile.js b/scm-ui-components/packages/ui-components/src/repos/DiffFile.js index 3a04880863..3d2dba6c8b 100644 --- a/scm-ui-components/packages/ui-components/src/repos/DiffFile.js +++ b/scm-ui-components/packages/ui-components/src/repos/DiffFile.js @@ -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 { {this.renderChangeTag(file)}
- - {fileControls} + + + {fileControls} +
diff --git a/scm-ui-components/packages/ui-components/src/repos/changesets/ChangesetButtonGroup.js b/scm-ui-components/packages/ui-components/src/repos/changesets/ChangesetButtonGroup.js index ba7320b152..72ce9a2b38 100644 --- a/scm-ui-components/packages/ui-components/src/repos/changesets/ChangesetButtonGroup.js +++ b/scm-ui-components/packages/ui-components/src/repos/changesets/ChangesetButtonGroup.js @@ -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 { const sourcesLink = createSourcesLink(repository, changeset); return ( - + - + ); } } diff --git a/scm-ui/src/repos/branches/components/BranchButtonGroup.js b/scm-ui/src/repos/branches/components/BranchButtonGroup.js index 37b2818070..c3ca11aa78 100644 --- a/scm-ui/src/repos/branches/components/BranchButtonGroup.js +++ b/scm-ui/src/repos/branches/components/BranchButtonGroup.js @@ -1,7 +1,7 @@ //@flow import React from "react"; import type { Repository, Branch } from "@scm-manager/ui-types"; -import { ButtonGroup, Button } from "@scm-manager/ui-components"; +import { ButtonAddons, Button } from "@scm-manager/ui-components"; import { translate } from "react-i18next"; type Props = { @@ -24,7 +24,7 @@ class BranchButtonGroup extends React.Component { }/sources/${encodeURIComponent(branch.name)}/`; return ( - + - + ); } } diff --git a/scm-ui/src/repos/permissions/containers/AdvancedPermissionsDialog.js b/scm-ui/src/repos/permissions/containers/AdvancedPermissionsDialog.js index d15b9112b9..c84c5deb59 100644 --- a/scm-ui/src/repos/permissions/containers/AdvancedPermissionsDialog.js +++ b/scm-ui/src/repos/permissions/containers/AdvancedPermissionsDialog.js @@ -1,7 +1,11 @@ // @flow - import React from "react"; -import { Button, SubmitButton, Modal } from "@scm-manager/ui-components"; +import { + ButtonGroup, + Button, + SubmitButton, + Modal +} from "@scm-manager/ui-components"; import { translate } from "react-i18next"; import PermissionCheckbox from "../components/PermissionCheckbox"; @@ -56,15 +60,13 @@ class AdvancedPermissionsDialog extends React.Component { const footer = (
-
-

{submitButton}

-

-

+ + {submitButton} + -
+ ); } }