summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Frazier <nrflaw@gmail.com>2016-12-09 22:46:52 -0500
committerChristopher Speller <crspeller@gmail.com>2016-12-09 22:46:52 -0500
commitcb870c83d1f3135b2b339f3444cfa7c632c4d5bd (patch)
treedae26949955feca9a26e20f0d3e7890ab115b93c
parentc2be6497ebc3dd586f4fbd61f76ac6cef23a9acf (diff)
downloadchat-cb870c83d1f3135b2b339f3444cfa7c632c4d5bd.tar.gz
chat-cb870c83d1f3135b2b339f3444cfa7c632c4d5bd.tar.bz2
chat-cb870c83d1f3135b2b339f3444cfa7c632c4d5bd.zip
PLT-4783 Fix autofocus for "Add/Manage Members" and "More public channels" modals (#4610)
* test fix * additional test fix * removed commented line * test fix additional test fix removed commented line fixed sidebar, rolled back web_client fix * fix for more_channels input focus bug
-rw-r--r--webapp/components/channel_invite_modal.jsx2
-rw-r--r--webapp/components/member_list_team.jsx3
-rw-r--r--webapp/components/sidebar.jsx6
-rw-r--r--webapp/components/sidebar_header_dropdown.jsx2
-rw-r--r--webapp/components/team_members_modal.jsx6
5 files changed, 17 insertions, 2 deletions
diff --git a/webapp/components/channel_invite_modal.jsx b/webapp/components/channel_invite_modal.jsx
index a9655f183..4b72cfc40 100644
--- a/webapp/components/channel_invite_modal.jsx
+++ b/webapp/components/channel_invite_modal.jsx
@@ -12,6 +12,7 @@ import TeamStore from 'stores/team_store.jsx';
import {searchUsers} from 'actions/user_actions.jsx';
import * as AsyncClient from 'utils/async_client.jsx';
+import * as UserAgent from 'utils/user_agent.jsx';
import React from 'react';
import {Modal} from 'react-bootstrap';
@@ -140,6 +141,7 @@ export default class ChannelInviteModal extends React.Component {
nextPage={this.nextPage}
search={this.search}
actions={[ChannelInviteButton]}
+ focusOnMount={!UserAgent.isMobile()}
actionProps={{
channel: this.props.channel,
onInviteError: this.handleInviteError
diff --git a/webapp/components/member_list_team.jsx b/webapp/components/member_list_team.jsx
index a48283b96..768129f1c 100644
--- a/webapp/components/member_list_team.jsx
+++ b/webapp/components/member_list_team.jsx
@@ -12,6 +12,8 @@ import {getTeamStats} from 'utils/async_client.jsx';
import Constants from 'utils/constants.jsx';
+import * as UserAgent from 'utils/user_agent.jsx';
+
import React from 'react';
const USERS_PER_PAGE = 50;
@@ -132,6 +134,7 @@ export default class MemberListTeam extends React.Component {
search={this.search}
actions={teamMembersDropdown}
actionUserProps={actionUserProps}
+ focusOnMount={!UserAgent.isMobile()}
/>
);
}
diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx
index 85d39c9e7..1145c8ab3 100644
--- a/webapp/components/sidebar.jsx
+++ b/webapp/components/sidebar.jsx
@@ -19,6 +19,7 @@ import * as AsyncClient from 'utils/async_client.jsx';
import * as Utils from 'utils/utils.jsx';
import * as ChannelUtils from 'utils/channel_utils.jsx';
import * as ChannelActions from 'actions/channel_actions.jsx';
+import * as UserAgent from 'utils/user_agent.jsx';
import Constants from 'utils/constants.jsx';
@@ -341,6 +342,11 @@ export default class Sidebar extends React.Component {
showMoreChannelsModal() {
// manually show the modal because using data-toggle messes with keyboard focus when the modal is dismissed
$('#more_channels').modal({'data-channeltype': 'O'}).modal('show');
+ $('#more_channels').on('shown.bs.modal', () => {
+ if (!UserAgent.isMobile()) {
+ $('#more_channels input').focus();
+ }
+ });
}
showNewChannelModal(type) {
diff --git a/webapp/components/sidebar_header_dropdown.jsx b/webapp/components/sidebar_header_dropdown.jsx
index 1308b2304..dcd791cc6 100644
--- a/webapp/components/sidebar_header_dropdown.jsx
+++ b/webapp/components/sidebar_header_dropdown.jsx
@@ -121,7 +121,6 @@ export default class SidebarHeaderDropdown extends React.Component {
e.preventDefault();
this.setState({
- showDropdown: false,
showTeamMembersModal: true
});
}
@@ -448,6 +447,7 @@ export default class SidebarHeaderDropdown extends React.Component {
if (this.state.showTeamMembersModal) {
teamMembersModal = (
<TeamMembersModal
+ onLoad={this.toggleDropdown}
onHide={this.hideTeamMembersModal}
isAdmin={isAdmin}
/>
diff --git a/webapp/components/team_members_modal.jsx b/webapp/components/team_members_modal.jsx
index 187fa6538..37bfe9ea5 100644
--- a/webapp/components/team_members_modal.jsx
+++ b/webapp/components/team_members_modal.jsx
@@ -25,6 +25,9 @@ export default class TeamMembersModal extends React.Component {
componentDidMount() {
TeamStore.addChangeListener(this.teamChanged);
+ if (this.props.onLoad) {
+ this.props.onLoad();
+ }
}
componentWillUnmount() {
@@ -75,5 +78,6 @@ export default class TeamMembersModal extends React.Component {
TeamMembersModal.propTypes = {
onHide: React.PropTypes.func.isRequired,
- isAdmin: React.PropTypes.bool.isRequired
+ isAdmin: React.PropTypes.bool.isRequired,
+ onLoad: React.PropTypes.func
};