From 0b296dd8c2aefefe89787be5cc627d44cf431150 Mon Sep 17 00:00:00 2001 From: Joshua Borton Date: Tue, 15 Nov 2016 14:23:26 -0500 Subject: Add Add `onExit` hook to new_channel_modal (#4344) This delays updating the url with the new channel until after the modal is exited which bypasses a state where the center textarea is focused and then focus is removed due to how react-overlays handles restoring focus to the last element focused before the modal was shown. --- webapp/components/new_channel_flow.jsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'webapp/components/new_channel_flow.jsx') diff --git a/webapp/components/new_channel_flow.jsx b/webapp/components/new_channel_flow.jsx index c6c265725..b37e6cf35 100644 --- a/webapp/components/new_channel_flow.jsx +++ b/webapp/components/new_channel_flow.jsx @@ -53,6 +53,7 @@ class NewChannelFlow extends React.Component { super(props); this.doSubmit = this.doSubmit.bind(this); + this.onModalExited = this.onModalExited.bind(this); this.typeSwitched = this.typeSwitched.bind(this); this.urlChangeRequested = this.urlChangeRequested.bind(this); this.urlChangeSubmitted = this.urlChangeSubmitted.bind(this); @@ -117,8 +118,11 @@ class NewChannelFlow extends React.Component { member: data2.member }); + this.doOnModalExited = () => { + browserHistory.push(TeamStore.getCurrentTeamRelativeUrl() + '/channels/' + data2.channel.name); + }; + this.props.onModalDismissed(); - browserHistory.push(TeamStore.getCurrentTeamRelativeUrl() + '/channels/' + data2.channel.name); } ); }, @@ -143,6 +147,11 @@ class NewChannelFlow extends React.Component { } ); } + onModalExited() { + if (this.doOnModalExited) { + this.doOnModalExited(); + } + } typeSwitched() { if (this.state.channelType === 'P') { this.setState({channelType: 'O'}); @@ -223,6 +232,7 @@ class NewChannelFlow extends React.Component { serverError={this.state.serverError} onSubmitChannel={this.doSubmit} onModalDismissed={this.props.onModalDismissed} + onModalExited={this.onModalExited} onTypeSwitched={this.typeSwitched} onChangeURLPressed={this.urlChangeRequested} onDataChanged={this.channelDataChanged} @@ -233,6 +243,7 @@ class NewChannelFlow extends React.Component { channelData={channelData} serverError={this.state.serverError} onSubmitChannel={this.doSubmit} + onModalExited={this.onModalExited} onModalDismissed={this.props.onModalDismissed} onTypeSwitched={this.typeSwitched} onChangeURLPressed={this.urlChangeRequested} @@ -248,6 +259,7 @@ class NewChannelFlow extends React.Component { serverError={this.state.serverError} onModalSubmit={this.urlChangeSubmitted} onModalDismissed={this.urlChangeDismissed} + onModalExited={this.onModalExited} /> ); -- cgit v1.2.3-1-g7c22