diff options
author | Joram Wilander <jwawilander@gmail.com> | 2015-07-24 11:40:42 -0400 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2015-07-24 11:40:42 -0400 |
commit | 4f9c40e60b31936977da357214bf1b9fd99a68d7 (patch) | |
tree | bf79e07b3eed37b8ab204f9258db5c7c4ee8a32a /web/react/components/user_settings.jsx | |
parent | b813234f4cc38e72bb94556d3a4acdcde5071468 (diff) | |
parent | dbbe40e893419d78e23b0d73c8bd6a30478cde2c (diff) | |
download | chat-4f9c40e60b31936977da357214bf1b9fd99a68d7.tar.gz chat-4f9c40e60b31936977da357214bf1b9fd99a68d7.tar.bz2 chat-4f9c40e60b31936977da357214bf1b9fd99a68d7.zip |
Merge pull request #226 from nickago/MM-1546
MM-1546 Clear error messages on modal close and channel switch
Diffstat (limited to 'web/react/components/user_settings.jsx')
-rw-r--r-- | web/react/components/user_settings.jsx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/web/react/components/user_settings.jsx b/web/react/components/user_settings.jsx index 298f5ee70..b940a3c6f 100644 --- a/web/react/components/user_settings.jsx +++ b/web/react/components/user_settings.jsx @@ -11,6 +11,7 @@ var client = require('../utils/client.jsx'); var AsyncClient = require('../utils/async_client.jsx'); var utils = require('../utils/utils.jsx'); var Constants = require('../utils/constants.jsx'); +var assign = require('object-assign'); function getNotificationsStateFromStores() { var user = UserStore.getCurrentUser(); @@ -95,11 +96,20 @@ var NotificationsTab = React.createClass({ }.bind(this) ); }, + handleClose: function() { + $(this.getDOMNode()).find(".form-control").each(function() { + this.value = ""; + }); + + this.setState(assign({},getNotificationsStateFromStores(),{server_error: null})); + }, componentDidMount: function() { UserStore.addChangeListener(this._onChange); + $('#user_settings1').on('hidden.bs.modal', this.handleClose); }, componentWillUnmount: function() { UserStore.removeChangeListener(this._onChange); + $('#user_settings1').off('hidden.bs.modal', this.handleClose); }, _onChange: function() { var newState = getNotificationsStateFromStores(); @@ -502,6 +512,18 @@ var SecurityTab = React.createClass({ handleDevicesOpen: function() { $("#user_settings1").modal('hide'); }, + handleClose: function() { + $(this.getDOMNode()).find(".form-control").each(function() { + this.value = ""; + }); + this.setState({current_password: '', new_password: '', confirm_password: '', server_error: null, password_error: null}); + }, + componentDidMount: function() { + $('#user_settings1').on('hidden.bs.modal', this.handleClose); + }, + componentWillUnmount: function() { + $('#user_settings1').off('hidden.bs.modal', this.handleClose); + }, getInitialState: function() { return { current_password: '', new_password: '', confirm_password: '' }; }, @@ -751,6 +773,19 @@ var GeneralTab = React.createClass({ this.submitActive = false this.props.updateSection(section); }, + handleClose: function() { + $(this.getDOMNode()).find(".form-control").each(function() { + this.value = ""; + }); + + this.setState(assign({}, this.getInitialState(), {client_error: null, server_error: null, email_error: null})); + }, + componentDidMount: function() { + $('#user_settings1').on('hidden.bs.modal', this.handleClose); + }, + componentWillUnmount: function() { + $('#user_settings1').off('hidden.bs.modal', this.handleClose); + }, getInitialState: function() { var user = this.props.user; @@ -994,10 +1029,14 @@ var AppearanceTab = React.createClass({ var hex = utils.rgb2hex(e.target.style.backgroundColor); this.setState({ theme: hex.toLowerCase() }); }, + handleClose: function() { + this.setState({server_error: null}); + }, componentDidMount: function() { if (this.props.activeSection === "theme") { $(this.refs[this.state.theme].getDOMNode()).addClass('active-border'); } + $('#user_settings1').on('hidden.bs.modal', this.handleClose); }, componentDidUpdate: function() { if (this.props.activeSection === "theme") { @@ -1005,6 +1044,9 @@ var AppearanceTab = React.createClass({ $(this.refs[this.state.theme].getDOMNode()).addClass('active-border'); } }, + componentWillUnmount: function() { + $('#user_settings1').off('hidden.bs.modal', this.handleClose); + }, getInitialState: function() { var user = UserStore.getCurrentUser(); var theme = config.ThemeColors != null ? config.ThemeColors[0] : "#2389d7"; |