diff options
Diffstat (limited to 'webapp/components/admin_console/save_button.jsx')
-rw-r--r-- | webapp/components/admin_console/save_button.jsx | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/webapp/components/admin_console/save_button.jsx b/webapp/components/admin_console/save_button.jsx new file mode 100644 index 000000000..18bb6e96d --- /dev/null +++ b/webapp/components/admin_console/save_button.jsx @@ -0,0 +1,61 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React from 'react'; + +import {FormattedMessage} from 'react-intl'; + +export default class SaveButton extends React.Component { + static get propTypes() { + return { + saving: React.PropTypes.bool.isRequired, + disabled: React.PropTypes.bool + }; + } + + static get defaultProps() { + return { + disabled: false + }; + } + + render() { + const {saving, disabled, ...props} = this.props; // eslint-disable-line no-use-before-define + + let contents; + if (saving) { + contents = ( + <span> + <span className='glyphicon glyphicon-refresh glyphicon-refresh-animate'/> + <FormattedMessage + id='admin.saving' + defaultMessage='Saving Config...' + /> + </span> + ); + } else { + contents = ( + <FormattedMessage + id='admin.save' + defaultMessage='Save' + /> + ); + } + + let className = 'save-button btn'; + if (!disabled) { + className += ' btn-primary'; + } + + return ( + <button + type='submit' + className={className} + disabled={disabled} + {...props} + > + {contents} + </button> + ); + } +} |