From 3f1b7bbf5e9787e062d7b37587806ff0af43da69 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Fri, 31 Jul 2020 10:48:51 +0200 Subject: [PATCH] use multiline tooltips for help as default --- scm-ui/ui-components/src/Help.stories.tsx | 58 +++++++++++++++++++++ scm-ui/ui-components/src/Help.tsx | 27 ++++++---- scm-ui/ui-components/src/forms/Checkbox.tsx | 4 +- scm-ui/ui-components/src/forms/Radio.tsx | 2 +- 4 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 scm-ui/ui-components/src/Help.stories.tsx diff --git a/scm-ui/ui-components/src/Help.stories.tsx b/scm-ui/ui-components/src/Help.stories.tsx new file mode 100644 index 0000000000..6be7d02654 --- /dev/null +++ b/scm-ui/ui-components/src/Help.stories.tsx @@ -0,0 +1,58 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import styled from "styled-components"; +import * as React from "react"; +import { storiesOf } from "@storybook/react"; +import Help from "./Help"; + +const Wrapper = styled.div` + margin: 5rem; +`; + +const Spacing = styled.div` + margin-top: 1rem; +`; + +const longContent = + "Cleverness nuclear genuine static irresponsibility invited President Zaphod\n" + + "Beeblebrox hyperspace ship. Another custard through computer-generated universe\n" + + "shapes field strong disaster parties Russell’s ancestors infinite colour\n" + + "imaginative generator sweep."; + +storiesOf("Help", module) + .addDecorator(storyFn => {storyFn()}) + .add("Default", () => ) + .add("Multiline", () => ( + <> + + + + + + + + + + )); diff --git a/scm-ui/ui-components/src/Help.tsx b/scm-ui/ui-components/src/Help.tsx index 3bb250f3f0..f49b49f1ca 100644 --- a/scm-ui/ui-components/src/Help.tsx +++ b/scm-ui/ui-components/src/Help.tsx @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -import React from "react"; +import React, { FC } from "react"; import classNames from "classnames"; import styled from "styled-components"; import Tooltip from "./Tooltip"; @@ -29,6 +29,7 @@ import HelpIcon from "./HelpIcon"; type Props = { message: string; + multiline?: boolean; className?: string; }; @@ -37,13 +38,17 @@ const HelpTooltip = styled(Tooltip)` padding-left: 3px; `; -export default class Help extends React.Component { - render() { - const { message, className } = this.props; - return ( - - - - ); - } -} +const Help: FC = ({ message, multiline, className }) => ( + + + +); + +Help.defaultProps = { + multiline: true +}; + +export default Help; diff --git a/scm-ui/ui-components/src/forms/Checkbox.tsx b/scm-ui/ui-components/src/forms/Checkbox.tsx index 291e8f7e30..0552afe545 100644 --- a/scm-ui/ui-components/src/forms/Checkbox.tsx +++ b/scm-ui/ui-components/src/forms/Checkbox.tsx @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -import React, { ChangeEvent } from "react"; +import React from "react"; import { Help } from "../index"; import LabelWithHelpIcon from "./LabelWithHelpIcon"; import TriStateCheckbox from "./TriStateCheckbox"; @@ -47,7 +47,7 @@ export default class Checkbox extends React.Component { renderHelp = () => { const { title, helpText } = this.props; if (helpText && !title) { - return ; + return ; } }; diff --git a/scm-ui/ui-components/src/forms/Radio.tsx b/scm-ui/ui-components/src/forms/Radio.tsx index 3599d5a29d..fe6a35f4a6 100644 --- a/scm-ui/ui-components/src/forms/Radio.tsx +++ b/scm-ui/ui-components/src/forms/Radio.tsx @@ -43,7 +43,7 @@ class Radio extends React.Component { renderHelp = () => { const helpText = this.props.helpText; if (helpText) { - return ; + return ; } };