@@ -13,8 +13,13 @@ export default class BaseLayout extends React.Component {
1313 getComponent : PropTypes . func . isRequired
1414 }
1515
16+ onFilterChange = ( e ) => {
17+ let { target : { value} } = e
18+ this . props . layoutActions . updateFilter ( value )
19+ }
20+
1621 render ( ) {
17- let { specSelectors, specActions, getComponent } = this . props
22+ let { specSelectors, specActions, getComponent, layoutSelectors } = this . props
1823
1924 let info = specSelectors . info ( )
2025 let url = specSelectors . url ( )
@@ -31,6 +36,15 @@ export default class BaseLayout extends React.Component {
3136 let Row = getComponent ( "Row" )
3237 let Col = getComponent ( "Col" )
3338 let Errors = getComponent ( "errors" , true )
39+
40+ let isLoading = specSelectors . loadingStatus ( ) === "loading"
41+ let isFailed = specSelectors . loadingStatus ( ) === "failed"
42+ let filter = layoutSelectors . currentFilter ( )
43+
44+ let inputStyle = { }
45+ if ( isFailed ) inputStyle . color = "red"
46+ if ( isLoading ) inputStyle . color = "#aaa"
47+
3448 const Schemes = getComponent ( "schemes" )
3549
3650 const isSpecEmpty = ! specSelectors . specStr ( )
@@ -57,13 +71,23 @@ export default class BaseLayout extends React.Component {
5771 { schemes && schemes . size ? (
5872 < Schemes schemes = { schemes } specActions = { specActions } />
5973 ) : null }
74+
6075 { securityDefinitions ? (
6176 < AuthorizeBtn />
6277 ) : null }
6378 </ Col >
6479 </ div >
6580 ) : null }
6681
82+ {
83+ filter === null || filter === false ? null :
84+ < div className = "filter-container" >
85+ < Col className = "filter wrapper" mobile = { 12 } >
86+ < input className = "operation-filter-input" placeholder = "Filter Operations" type = "text" onChange = { this . onFilterChange } value = { filter === true ? "" : filter } disabled = { isLoading } style = { inputStyle } />
87+ </ Col >
88+ </ div >
89+ }
90+
6791 < Row >
6892 < Col mobile = { 12 } desktop = { 12 } >
6993 < Operations />
0 commit comments