hide explore button when focusing filter field

pull/21833/head
Bruno Windels 2019-09-10 10:57:25 +02:00 committed by David Baker
parent 4ffa8c7b4a
commit 0fe31f843a
3 changed files with 28 additions and 0 deletions

View File

@ -138,8 +138,13 @@ limitations under the License.
.mx_LeftPanel_explore { .mx_LeftPanel_explore {
flex: 0 0 40%; flex: 0 0 40%;
overflow: hidden; overflow: hidden;
transition: flex-basis 0.2s;
box-sizing: border-box; box-sizing: border-box;
&.mx_LeftPanel_explore_hidden {
flex-basis: 0;
}
.mx_AccessibleButton { .mx_AccessibleButton {
font-size: 14px; font-size: 14px;
margin: 9px; margin: 9px;

View File

@ -82,6 +82,9 @@ const LeftPanel = React.createClass({
if (this.state.searchFilter !== nextState.searchFilter) { if (this.state.searchFilter !== nextState.searchFilter) {
return true; return true;
} }
if (this.state.searchFocused !== nextState.searchFocused) {
return true;
}
return false; return false;
}, },
@ -210,6 +213,14 @@ const LeftPanel = React.createClass({
this._roomList = ref; this._roomList = ref;
}, },
_onSearchFocus: function() {
this.setState({searchFocused: true});
},
_onSearchBlur: function() {
this.setState({searchFocused: false});
},
render: function() { render: function() {
const RoomList = sdk.getComponent('rooms.RoomList'); const RoomList = sdk.getComponent('rooms.RoomList');
const RoomBreadcrumbs = sdk.getComponent('rooms.RoomBreadcrumbs'); const RoomBreadcrumbs = sdk.getComponent('rooms.RoomBreadcrumbs');
@ -256,6 +267,8 @@ const LeftPanel = React.createClass({
placeholder={ _t('Filter room names') } placeholder={ _t('Filter room names') }
onSearch={ this.onSearch } onSearch={ this.onSearch }
onCleared={ this.onSearchCleared } onCleared={ this.onSearchCleared }
onFocus={this._onSearchFocus}
onBlur={this._onSearchBlur}
collapsed={this.props.collapsed} />); collapsed={this.props.collapsed} />);
let breadcrumbs; let breadcrumbs;

View File

@ -94,6 +94,15 @@ module.exports = React.createClass({
_onFocus: function(ev) { _onFocus: function(ev) {
ev.target.select(); ev.target.select();
if (this.props.onFocus) {
this.props.onFocus(ev);
}
},
_onBlur: function(ev) {
if (this.props.onBlur) {
this.props.onBlur(ev);
}
}, },
_clearSearch: function(source) { _clearSearch: function(source) {
@ -131,6 +140,7 @@ module.exports = React.createClass({
onChange={ this.onChange } onChange={ this.onChange }
onKeyDown={ this._onKeyDown } onKeyDown={ this._onKeyDown }
placeholder={ this.props.placeholder } placeholder={ this.props.placeholder }
onBlur={this._onBlur}
/> />
{ clearButton } { clearButton }
</div> </div>