From 3386c58d7c53131f0aa435abaf4cbb521d2f6049 Mon Sep 17 00:00:00 2001 From: David Lu Date: Thu, 2 Jun 2016 15:36:54 -0700 Subject: Made all settings save on enter (#3221) --- webapp/components/admin_console/admin_settings.jsx | 16 +++++++++++ webapp/components/setting_item_max.jsx | 32 ++++++++++++++++++---- 2 files changed, 42 insertions(+), 6 deletions(-) (limited to 'webapp/components') diff --git a/webapp/components/admin_console/admin_settings.jsx b/webapp/components/admin_console/admin_settings.jsx index d76e1331a..6765dd069 100644 --- a/webapp/components/admin_console/admin_settings.jsx +++ b/webapp/components/admin_console/admin_settings.jsx @@ -8,6 +8,7 @@ import Client from 'utils/web_client.jsx'; import FormError from 'components/form_error.jsx'; import SaveButton from 'components/admin_console/save_button.jsx'; +import Constants from 'utils/constants.jsx'; export default class AdminSettings extends React.Component { static get propTypes() { @@ -21,6 +22,7 @@ export default class AdminSettings extends React.Component { this.handleChange = this.handleChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this); + this.onKeyDown = this.onKeyDown.bind(this); this.state = { saveNeeded: false, @@ -36,6 +38,20 @@ export default class AdminSettings extends React.Component { }); } + componentDidMount() { + document.addEventListener('keydown', this.onKeyDown); + } + + componentWillUnmount() { + document.removeEventListener('keydown', this.onKeyDown); + } + + onKeyDown(e) { + if (e.keyCode === Constants.KeyCodes.ENTER) { + this.handleSubmit(e); + } + } + handleSubmit(e) { e.preventDefault(); diff --git a/webapp/components/setting_item_max.jsx b/webapp/components/setting_item_max.jsx index 61c7ee3f8..ec496a765 100644 --- a/webapp/components/setting_item_max.jsx +++ b/webapp/components/setting_item_max.jsx @@ -2,10 +2,32 @@ // See License.txt for license information. import {FormattedMessage} from 'react-intl'; +import * as Utils from 'utils/utils.jsx'; +import Constants from 'utils/constants.jsx'; import React from 'react'; export default class SettingItemMax extends React.Component { + constructor(props) { + super(props); + + this.onKeyDown = this.onKeyDown.bind(this); + } + + onKeyDown(e) { + if (e.keyCode === Constants.KeyCodes.ENTER) { + this.props.submit(e); + } + } + + componentDidMount() { + document.addEventListener('keydown', this.onKeyDown); + } + + componentWillUnmount() { + document.removeEventListener('keydown', this.onKeyDown); + } + render() { var clientError = null; if (this.props.client_error) { @@ -25,16 +47,14 @@ export default class SettingItemMax extends React.Component { var submit = ''; if (this.props.submit) { submit = ( - - - + ); } -- cgit v1.2.3-1-g7c22