From 9dd179273574630a471192c3f4c8e51c69581a48 Mon Sep 17 00:00:00 2001 From: Alexey Safronov Date: Thu, 8 Aug 2019 11:36:46 +0300 Subject: [PATCH] web: components: Refactoring SelectedItem component --- .../src/components/selected-item/index.js | 42 +++++++------------ .../selected-item/all/index.stories.js | 2 + .../stories/selected-item/base/README.md | 4 +- .../selected-item/base/index.stories.js | 8 ++-- 4 files changed, 22 insertions(+), 34 deletions(-) diff --git a/web/ASC.Web.Components/src/components/selected-item/index.js b/web/ASC.Web.Components/src/components/selected-item/index.js index 204cb59f6e..5228ac621c 100644 --- a/web/ASC.Web.Components/src/components/selected-item/index.js +++ b/web/ASC.Web.Components/src/components/selected-item/index.js @@ -1,6 +1,6 @@ import React from "react"; import PropTypes from "prop-types"; -import styled, { css } from "styled-components"; +import styled from "styled-components"; import { Text } from '../text'; import IconButton from '../icon-button'; @@ -23,7 +23,7 @@ const StyledSelectedTextBox = styled.div` cursor: default; `; -const IconButtonBox = styled.div` +const StyledCloseButton = styled.div` display: flex; align-items: center; padding: 0 8px; @@ -40,48 +40,34 @@ const IconButtonBox = styled.div` } `; -class SelectedItem extends React.PureComponent { - constructor(props) { - super(props); - } - - stopAction = e => e.preventDefault(); - - onCloseButtonClick = (e) => { - if (!this.props.isDisabled) { - this.props.clickAction && this.props.clickAction(); - } else { - this.stopAction(e); - } - }; - - render() { +const SelectedItem = (props) => { + const {isDisabled, text, onClose } = props; + console.log("SelectedItem render"); return ( - + - - {this.props.text} + + {text} - + - + ); - } } SelectedItem.propTypes = { text: PropTypes.string, isInline: PropTypes.bool, - clickAction: PropTypes.func, + onClose: PropTypes.func.isRequired, isDisabled: PropTypes.bool }; diff --git a/web/ASC.Web.Storybook/stories/selected-item/all/index.stories.js b/web/ASC.Web.Storybook/stories/selected-item/all/index.stories.js index 85957307ed..716bc89703 100644 --- a/web/ASC.Web.Storybook/stories/selected-item/all/index.stories.js +++ b/web/ASC.Web.Storybook/stories/selected-item/all/index.stories.js @@ -22,6 +22,8 @@ const StyledContainerInline = styled.div` `; storiesOf('Components|SelectedItem', module) + .addParameters({ viewport: { defaultViewport: 'responsive' } }) + .addParameters({ options: { showAddonPanel: false } }) .add('all', () => { return ( diff --git a/web/ASC.Web.Storybook/stories/selected-item/base/README.md b/web/ASC.Web.Storybook/stories/selected-item/base/README.md index b746816300..86a8cdee3d 100644 --- a/web/ASC.Web.Storybook/stories/selected-item/base/README.md +++ b/web/ASC.Web.Storybook/stories/selected-item/base/README.md @@ -11,7 +11,7 @@ import { SelectedItem } from 'asc-web-components'; ```js - +console.log("onClose")}> ``` @@ -22,7 +22,7 @@ import { SelectedItem } from 'asc-web-components'; | `isDisabled` | `bool` | - | - | false | Tells when the button should present a disabled state | | `text` | `string` | - | - | - | Selected item text | | `isInline` | `bool` | - | - | true | Sets the 'display: inline-block' property | -| `clickAction` | `function` | - | - | - | What the selected item will trigger when clicked | +| `onClose` | `function` | - | - | - | What the selected item will trigger when clicked | diff --git a/web/ASC.Web.Storybook/stories/selected-item/base/index.stories.js b/web/ASC.Web.Storybook/stories/selected-item/base/index.stories.js index bcb43692ef..78fa736ced 100644 --- a/web/ASC.Web.Storybook/stories/selected-item/base/index.stories.js +++ b/web/ASC.Web.Storybook/stories/selected-item/base/index.stories.js @@ -6,21 +6,21 @@ import Section from '../../../.storybook/decorators/section'; import withReadme from 'storybook-readme/with-readme'; import Readme from './README.md'; -function onCloseButtonClick() { - console.log("onCloseButtonClick"); +function onClose(e) { + console.log("onClose", e); } storiesOf('Components|SelectedItem', module) .addDecorator(withKnobs) .addDecorator(withReadme(Readme)) - .add('selected item', () => { + .add('base', () => { return (