diff options
author | Alexander Tseung <alextsg@gmail.com> | 2018-07-21 06:42:28 +0800 |
---|---|---|
committer | Alexander Tseung <alextsg@gmail.com> | 2018-08-23 05:12:01 +0800 |
commit | d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b (patch) | |
tree | 9d363938db3b45df02699ab7d2945bc22f675fd0 /ui/app/components/page-container/page-container.component.js | |
parent | 01c0c98501c02623b0cd650483d14c99566ce0af (diff) | |
download | tangerine-wallet-browser-d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b.tar tangerine-wallet-browser-d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b.tar.gz tangerine-wallet-browser-d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b.tar.bz2 tangerine-wallet-browser-d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b.tar.lz tangerine-wallet-browser-d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b.tar.xz tangerine-wallet-browser-d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b.tar.zst tangerine-wallet-browser-d7d141cea54ba7bbeb2e7db9fb7ed54ce0733d4b.zip |
Fix code readability, use PureComponent over Component
Diffstat (limited to 'ui/app/components/page-container/page-container.component.js')
-rw-r--r-- | ui/app/components/page-container/page-container.component.js | 45 |
1 files changed, 15 insertions, 30 deletions
diff --git a/ui/app/components/page-container/page-container.component.js b/ui/app/components/page-container/page-container.component.js index 10923d2fd..3a2274a29 100644 --- a/ui/app/components/page-container/page-container.component.js +++ b/ui/app/components/page-container/page-container.component.js @@ -1,10 +1,10 @@ -import React, { Component } from 'react' +import React, { PureComponent } from 'react' import PropTypes from 'prop-types' import PageContainerHeader from './page-container-header' import PageContainerFooter from './page-container-footer' -export default class PageContainer extends Component { +export default class PageContainer extends PureComponent { static propTypes = { // PageContainerHeader props backButtonString: PropTypes.string, @@ -28,25 +28,11 @@ export default class PageContainer extends Component { } state = { - activeTabIndex: 0, + activeTabIndex: this.props.defaultActiveTabIndex || 0, } - componentDidMount () { - const { defaultActiveTabIndex } = this.props - - if (defaultActiveTabIndex) { - this.setState({ activeTabIndex: defaultActiveTabIndex }) - } - } - - handleTabClick (tabIndex) { - const { activeTabIndex } = this.state - - if (tabIndex !== activeTabIndex) { - this.setState({ - activeTabIndex: tabIndex, - }) - } + handleTabClick (activeTabIndex) { + this.setState({ activeTabIndex }) } renderTabs () { @@ -58,12 +44,12 @@ export default class PageContainer extends Component { const numberOfTabs = React.Children.count(tabsComponent.props.children) - return React.Children.map(tabsComponent.props.children, (child, index) => { + return React.Children.map(tabsComponent.props.children, (child, tabIndex) => { return child && React.cloneElement(child, { onClick: index => this.handleTabClick(index), - tabIndex: index, - isActive: numberOfTabs > 1 && index === this.state.activeTabIndex, - key: index, + tabIndex, + isActive: numberOfTabs > 1 && tabIndex === this.state.activeTabIndex, + key: tabIndex, className: 'page-container__tab', activeClassName: 'page-container__tab--selected', }) @@ -83,13 +69,12 @@ export default class PageContainer extends Component { renderContent () { const { contentComponent, tabsComponent } = this.props - switch (true) { - case Boolean(contentComponent): - return contentComponent - case Boolean(tabsComponent): - return this.renderActiveTabContent() - default: - return null + if (contentComponent) { + return contentComponent + } else if (tabsComponent) { + return this.renderActiveTabContent() + } else { + return null } } |