Use state instead of component hand-down for managing filter

This commit is contained in:
Kyle Shockey
2017-07-11 21:54:56 -07:00
parent cf12091d93
commit 28f7a15fe9
5 changed files with 16 additions and 33 deletions

View File

@@ -10,23 +10,7 @@ export default class StandaloneLayout extends React.Component {
specSelectors: PropTypes.object.isRequired,
layoutSelectors: PropTypes.object.isRequired,
layoutActions: PropTypes.object.isRequired,
getComponent: PropTypes.func.isRequired,
getConfigs: PropTypes.func.isRequired
}
constructor(props) {
super(props)
this.handleFilterChange = this.handleFilterChange.bind(this)
let { getConfigs } = this.props
let { filter } = getConfigs()
this.state = { filter: filter }
}
handleFilterChange(filter) {
this.setState({ filter: filter })
getComponent: PropTypes.func.isRequired
}
render() {
@@ -40,14 +24,12 @@ export default class StandaloneLayout extends React.Component {
const BaseLayout = getComponent("BaseLayout", true)
const OnlineValidatorBadge = getComponent("onlineValidatorBadge", true)
const filter = this.state.filter
const loadingStatus = specSelectors.loadingStatus()
return (
<Container className='swagger-ui'>
{ Topbar ? <Topbar onFilterChange={this.handleFilterChange} filter={ filter } /> : null }
{ Topbar ? <Topbar /> : null }
{ loadingStatus === "loading" &&
<div className="info">
<h4 className="title">Loading...</h4>
@@ -63,7 +45,7 @@ export default class StandaloneLayout extends React.Component {
<h4 className="title">Failed to load config.</h4>
</div>
}
{ !loadingStatus || loadingStatus === "success" && <BaseLayout filter={filter} /> }
{ !loadingStatus || loadingStatus === "success" && <BaseLayout /> }
<Row>
<Col>
<OnlineValidatorBadge />