mirror of https://github.com/vector-im/riot-web
show shorter placeholder for filter feed when not focused
parent
0fe31f843a
commit
b328fcb7e3
|
@ -264,7 +264,8 @@ const LeftPanel = React.createClass({
|
||||||
|
|
||||||
const searchBox = (<SearchBox
|
const searchBox = (<SearchBox
|
||||||
enableRoomSearchFocus={true}
|
enableRoomSearchFocus={true}
|
||||||
placeholder={ _t('Filter room names') }
|
blurredPlaceholder={ _t('Filter') }
|
||||||
|
placeholder={ _t('Filter rooms…') }
|
||||||
onSearch={ this.onSearch }
|
onSearch={ this.onSearch }
|
||||||
onCleared={ this.onSearchCleared }
|
onCleared={ this.onSearchCleared }
|
||||||
onFocus={this._onSearchFocus}
|
onFocus={this._onSearchFocus}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import { KeyCode } from '../../Keyboard';
|
||||||
import dis from '../../dispatcher';
|
import dis from '../../dispatcher';
|
||||||
import { throttle } from 'lodash';
|
import { throttle } from 'lodash';
|
||||||
import AccessibleButton from '../../components/views/elements/AccessibleButton';
|
import AccessibleButton from '../../components/views/elements/AccessibleButton';
|
||||||
|
import classNames from 'classnames';
|
||||||
|
|
||||||
module.exports = React.createClass({
|
module.exports = React.createClass({
|
||||||
displayName: 'SearchBox',
|
displayName: 'SearchBox',
|
||||||
|
@ -46,6 +47,7 @@ module.exports = React.createClass({
|
||||||
getInitialState: function() {
|
getInitialState: function() {
|
||||||
return {
|
return {
|
||||||
searchTerm: "",
|
searchTerm: "",
|
||||||
|
blurred: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -93,6 +95,7 @@ module.exports = React.createClass({
|
||||||
},
|
},
|
||||||
|
|
||||||
_onFocus: function(ev) {
|
_onFocus: function(ev) {
|
||||||
|
this.setState({blurred: false});
|
||||||
ev.target.select();
|
ev.target.select();
|
||||||
if (this.props.onFocus) {
|
if (this.props.onFocus) {
|
||||||
this.props.onFocus(ev);
|
this.props.onFocus(ev);
|
||||||
|
@ -100,6 +103,7 @@ module.exports = React.createClass({
|
||||||
},
|
},
|
||||||
|
|
||||||
_onBlur: function(ev) {
|
_onBlur: function(ev) {
|
||||||
|
this.setState({blurred: true});
|
||||||
if (this.props.onBlur) {
|
if (this.props.onBlur) {
|
||||||
this.props.onBlur(ev);
|
this.props.onBlur(ev);
|
||||||
}
|
}
|
||||||
|
@ -127,6 +131,12 @@ module.exports = React.createClass({
|
||||||
onClick={ () => {this._clearSearch("button"); } }>
|
onClick={ () => {this._clearSearch("button"); } }>
|
||||||
</AccessibleButton>) : undefined;
|
</AccessibleButton>) : undefined;
|
||||||
|
|
||||||
|
// show a shorter placeholder when blurred, if requested
|
||||||
|
// this is used for the room filter field that has
|
||||||
|
// the explore button next to it when blurred
|
||||||
|
const placeholder = this.state.blurred ?
|
||||||
|
(this.props.blurredPlaceholder || this.props.placeholder) :
|
||||||
|
this.props.placeholder;
|
||||||
const className = this.props.className || "";
|
const className = this.props.className || "";
|
||||||
return (
|
return (
|
||||||
<div className="mx_SearchBox mx_textinput">
|
<div className="mx_SearchBox mx_textinput">
|
||||||
|
@ -139,8 +149,8 @@ module.exports = React.createClass({
|
||||||
onFocus={ this._onFocus }
|
onFocus={ this._onFocus }
|
||||||
onChange={ this.onChange }
|
onChange={ this.onChange }
|
||||||
onKeyDown={ this._onKeyDown }
|
onKeyDown={ this._onKeyDown }
|
||||||
placeholder={ this.props.placeholder }
|
|
||||||
onBlur={this._onBlur}
|
onBlur={this._onBlur}
|
||||||
|
placeholder={ placeholder }
|
||||||
/>
|
/>
|
||||||
{ clearButton }
|
{ clearButton }
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1473,8 +1473,9 @@
|
||||||
"Community %(groupId)s not found": "Community %(groupId)s not found",
|
"Community %(groupId)s not found": "Community %(groupId)s not found",
|
||||||
"This homeserver does not support communities": "This homeserver does not support communities",
|
"This homeserver does not support communities": "This homeserver does not support communities",
|
||||||
"Failed to load %(groupId)s": "Failed to load %(groupId)s",
|
"Failed to load %(groupId)s": "Failed to load %(groupId)s",
|
||||||
"Filter room names": "Filter room names",
|
|
||||||
"Explore": "Explore",
|
"Explore": "Explore",
|
||||||
|
"Filter": "Filter",
|
||||||
|
"Filter rooms…": "Filter rooms…",
|
||||||
"Failed to reject invitation": "Failed to reject invitation",
|
"Failed to reject invitation": "Failed to reject invitation",
|
||||||
"This room is not public. You will not be able to rejoin without an invite.": "This room is not public. You will not be able to rejoin without an invite.",
|
"This room is not public. You will not be able to rejoin without an invite.": "This room is not public. You will not be able to rejoin without an invite.",
|
||||||
"Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
|
"Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
|
||||||
|
|
Loading…
Reference in New Issue