diff options
author | Christopher Speller <crspeller@gmail.com> | 2016-03-30 10:05:26 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-03-30 10:05:26 -0400 |
commit | 2ab4581d5e658b22c4a957ec57bb3530f92ad66b (patch) | |
tree | 4202ebdcbc92905873a15d90a6fb68464bb1629f /webapp/components/form_error.jsx | |
parent | fcc80818a8afb6f1e2f9974916f02d5fdeb72ec8 (diff) | |
parent | 6a101292c74d33e542e47f8e54fff5a5389bf2ef (diff) | |
download | chat-2ab4581d5e658b22c4a957ec57bb3530f92ad66b.tar.gz chat-2ab4581d5e658b22c4a957ec57bb3530f92ad66b.tar.bz2 chat-2ab4581d5e658b22c4a957ec57bb3530f92ad66b.zip |
Merge pull request #2561 from hmhealey/plt1736
PLT-1736 Initial Backstage Work
Diffstat (limited to 'webapp/components/form_error.jsx')
-rw-r--r-- | webapp/components/form_error.jsx | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/webapp/components/form_error.jsx b/webapp/components/form_error.jsx new file mode 100644 index 000000000..b7d1de16a --- /dev/null +++ b/webapp/components/form_error.jsx @@ -0,0 +1,50 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React from 'react'; + +export default class FormError extends React.Component { + static get propTypes() { + // accepts either a single error or an array of errors + return { + error: React.PropTypes.node, + errors: React.PropTypes.arrayOf(React.PropTypes.node) + }; + } + + static get defaultProps() { + return { + error: null, + errors: [] + }; + } + + render() { + if (!this.props.error && this.props.errors.length === 0) { + return null; + } + + // look for the first truthy error to display + let message = this.props.error; + + if (!message) { + for (const error of this.props.errors) { + if (error) { + message = error; + } + } + } + + if (!message) { + return null; + } + + return ( + <div className='form-group has-error'> + <label className='control-label'> + {message} + </label> + </div> + ); + } +} |