diff --git a/scm-ui-components/packages/ui-components/src/LabelWithHelpIcon.js b/scm-ui-components/packages/ui-components/src/LabelWithHelpIcon.js new file mode 100644 index 0000000000..f83f57b519 --- /dev/null +++ b/scm-ui-components/packages/ui-components/src/LabelWithHelpIcon.js @@ -0,0 +1,54 @@ +//@flow +import React from "react"; +import {Help} from "./index"; + +type Props = { + label: string, + helpText?: string +}; + +class LabelWithHelpIcon extends React.Component { + + renderLabel = () => { + const label = this.props.label; + if (label) { + return ; + } + return ""; + }; + + renderHelp = () => { + const helpText = this.props.helpText; + if(helpText){ + return ( +
+ +
); + } + else + return null; + }; + + renderLabelWithHelpIcon = () => { + if(this.props.label){ + return( +
+
+ {this.renderLabel()} +
+ {this.renderHelp()} +
+ ) + } + else + return null; + }; + + render() { + return ( + this.renderLabelWithHelpIcon() + ); + } +} + +export default LabelWithHelpIcon; diff --git a/scm-ui-components/packages/ui-components/src/forms/InputField.js b/scm-ui-components/packages/ui-components/src/forms/InputField.js index 83d79ce43b..4d9208d41f 100644 --- a/scm-ui-components/packages/ui-components/src/forms/InputField.js +++ b/scm-ui-components/packages/ui-components/src/forms/InputField.js @@ -1,7 +1,7 @@ //@flow import React from "react"; import classNames from "classnames"; -import {Help, Page} from "../index"; +import {LabelWithHelpIcon} from "../index"; type Props = { label?: string, @@ -35,26 +35,6 @@ class InputField extends React.Component { this.props.onChange(event.target.value); }; - renderLabel = () => { - const label = this.props.label; - if (label) { - return ; - } - return ""; - }; - - renderHelp = () => { - const helpText = this.props.helpText; - if(helpText){ - return ( -
- -
); - } - else - return null; - }; - handleKeyPress = (event: SyntheticKeyboardEvent) => { const onReturnPressed = this.props.onReturnPressed; if (!onReturnPressed) { @@ -73,7 +53,9 @@ class InputField extends React.Component { value, validationError, errorMessage, - disabled + disabled, + label, + helpText } = this.props; const errorView = validationError ? "is-danger" : ""; const helper = validationError ? ( @@ -83,12 +65,10 @@ class InputField extends React.Component { ); return (
-
-
- {this.renderLabel()} -
- {this.renderHelp()} -
+
{ diff --git a/scm-ui-components/packages/ui-components/src/forms/Select.js b/scm-ui-components/packages/ui-components/src/forms/Select.js index ad8077d5bf..902d9c36dd 100644 --- a/scm-ui-components/packages/ui-components/src/forms/Select.js +++ b/scm-ui-components/packages/ui-components/src/forms/Select.js @@ -1,6 +1,6 @@ //@flow import React from "react"; -import {Help} from "../index"; +import {LabelWithHelpIcon} from "../index"; export type SelectItem = { value: string, @@ -30,33 +30,15 @@ class Select extends React.Component { this.props.onChange(event.target.value); }; - renderLabel = () => { - const label = this.props.label; - if (label) { - return ; - } - return ""; - }; - - renderHelp = () => { - const helpText = this.props.helpText; - if(helpText){ - return ( -
- -
); - } - else - return null; - }; - render() { - const { options, value } = this.props; + const { options, value, label, helpText } = this.props; return (
- {this.renderLabel()} -
+
- {this.renderHelp()} -
); } diff --git a/scm-ui-components/packages/ui-components/src/forms/Textarea.js b/scm-ui-components/packages/ui-components/src/forms/Textarea.js index 2239581f0e..f1bb773813 100644 --- a/scm-ui-components/packages/ui-components/src/forms/Textarea.js +++ b/scm-ui-components/packages/ui-components/src/forms/Textarea.js @@ -1,6 +1,6 @@ //@flow import React from "react"; -import {Help} from "../index"; +import {LabelWithHelpIcon} from "../index"; export type SelectItem = { value: string, @@ -22,37 +22,15 @@ class Textarea extends React.Component { this.props.onChange(event.target.value); }; - renderLabel = () => { - const label = this.props.label; - if (label) { - return ; - } - return ""; - }; - - renderHelp = () => { - const helpText = this.props.helpText; - if(helpText){ - return ( -
- -
); - } - else - return null; - }; - render() { - const { placeholder, value } = this.props; + const { placeholder, value, label, helpText } = this.props; return (
-
-
- {this.renderLabel()} -
- {this.renderHelp()} -
+