From 90a0b1d7c6ff0d7bcc752b32390c4c84383c3c2c Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Mon, 31 Oct 2016 19:58:58 -0400 Subject: PLT-4433 Gave focus to the search box when the direct channels or channel member modal is opened (#4391) --- webapp/components/channel_members_modal.jsx | 2 ++ webapp/components/more_direct_channels.jsx | 2 ++ webapp/components/searchable_user_list.jsx | 12 ++++++++++-- 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()} /> 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 }; -- cgit v1.2.3-1-g7c22