summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarrison Healey <harrisonmhealey@gmail.com>2016-10-31 19:58:58 -0400
committerCorey Hulen <corey@hulen.com>2016-10-31 16:58:58 -0700
commit90a0b1d7c6ff0d7bcc752b32390c4c84383c3c2c (patch)
tree6860c1f922795635a1444817d3c9321f9aa2b57c
parent3f30aa57eab4d019442b4a5b4150e2dfe890db0b (diff)
downloadchat-90a0b1d7c6ff0d7bcc752b32390c4c84383c3c2c.tar.gz
chat-90a0b1d7c6ff0d7bcc752b32390c4c84383c3c2c.tar.bz2
chat-90a0b1d7c6ff0d7bcc752b32390c4c84383c3c2c.zip
PLT-4433 Gave focus to the search box when the direct channels or channel member modal is opened (#4391)
-rw-r--r--webapp/components/channel_members_modal.jsx2
-rw-r--r--webapp/components/more_direct_channels.jsx2
-rw-r--r--webapp/components/searchable_user_list.jsx12
3 files changed, 14 insertions, 2 deletions
diff --git a/webapp/components/channel_members_modal.jsx b/webapp/components/channel_members_modal.jsx
index 561ae595f..286a2243a 100644
--- a/webapp/components/channel_members_modal.jsx
+++ b/webapp/components/channel_members_modal.jsx
@@ -13,6 +13,7 @@ import {searchUsers} from 'actions/user_actions.jsx';
import {removeUserFromChannel} from 'actions/channel_actions.jsx';
import * as AsyncClient from 'utils/async_client.jsx';
+import * as UserAgent from 'utils/user_agent.jsx';
import * as Utils from 'utils/utils.jsx';
import React from 'react';
@@ -147,6 +148,7 @@ export default class ChannelMembersModal extends React.Component {
nextPage={this.nextPage}
search={this.search}
actions={removeButton}
+ focusOnMount={!UserAgent.isMobile()}
/>
);
}
diff --git a/webapp/components/more_direct_channels.jsx b/webapp/components/more_direct_channels.jsx
index b37131aed..52e546cd2 100644
--- a/webapp/components/more_direct_channels.jsx
+++ b/webapp/components/more_direct_channels.jsx
@@ -11,6 +11,7 @@ import UserStore from 'stores/user_store.jsx';
import TeamStore from 'stores/team_store.jsx';
import * as AsyncClient from 'utils/async_client.jsx';
+import * as UserAgent from 'utils/user_agent.jsx';
import * as Utils from 'utils/utils.jsx';
import Constants from 'utils/constants.jsx';
@@ -258,6 +259,7 @@ export default class MoreDirectChannels extends React.Component {
nextPage={this.nextPage}
search={this.search}
actions={[this.createJoinDirectChannelButton]}
+ focusOnMount={!UserAgent.isMobile()}
/>
</Modal.Body>
<Modal.Footer>
diff --git a/webapp/components/searchable_user_list.jsx b/webapp/components/searchable_user_list.jsx
index eee8288ba..faa1b441c 100644
--- a/webapp/components/searchable_user_list.jsx
+++ b/webapp/components/searchable_user_list.jsx
@@ -33,6 +33,12 @@ export default class SearchableUserList extends React.Component {
};
}
+ componentDidMount() {
+ if (this.props.focusOnMount) {
+ this.refs.filter.focus();
+ }
+ }
+
componentDidUpdate(prevProps, prevState) {
if (this.state.page !== prevState.page) {
$(ReactDOM.findDOMNode(this.refs.userList)).scrollTop(0);
@@ -209,7 +215,8 @@ SearchableUserList.defaultProps = {
actions: [],
actionProps: {},
actionUserProps: {},
- showTeamToggle: false
+ showTeamToggle: false,
+ focusOnMount: false
};
SearchableUserList.propTypes = {
@@ -222,5 +229,6 @@ SearchableUserList.propTypes = {
actions: React.PropTypes.arrayOf(React.PropTypes.func),
actionProps: React.PropTypes.object,
actionUserProps: React.PropTypes.object,
- style: React.PropTypes.object
+ style: React.PropTypes.object,
+ focusOnMount: React.PropTypes.bool.isRequired
};