d689c4946eb9c46b3db567bf0d564d204743851b
[aai/sparky-fe.git] / src / generic-components / InlineMessage / InlineMessage.jsx
1 /*
2  * ============LICENSE_START===================================================
3  * SPARKY (AAI UI service)
4  * ============================================================================
5  * Copyright © 2017 AT&T Intellectual Property.
6  * Copyright © 2017 Amdocs
7  * All rights reserved.
8  * ============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=====================================================
21  *
22  * ECOMP and OpenECOMP are trademarks
23  * and service marks of AT&T Intellectual Property.
24  */
25
26 import React, {Component, PropTypes} from 'react';
27 import FontAwesome from 'react-fontawesome';
28 import InlineMessageConstatns from './InlineMessageConstants';
29
30 import Alert from 'react-bootstrap/lib/Alert';
31
32 export default class InlineMessage extends Component {
33
34   static propType = {
35     level: PropTypes.string,
36     messageTxt: PropTypes.string
37   };
38
39   static defaultProps = {
40     level: '',
41     messageTxt: ''
42   };
43
44   render() {
45     let {level, messageTxt} = this.props;
46     let fontawesomeClassName;
47     //Select the font based on the severity level
48     switch (level) {
49       case 'success':
50         fontawesomeClassName = InlineMessageConstatns.SUCCESS_CLASSNAME;
51         break;
52       case 'warning':
53         fontawesomeClassName = InlineMessageConstatns.WARNING_CLASSNAME;
54         break;
55       case 'danger':
56         fontawesomeClassName = InlineMessageConstatns.DANGER_CLASSNAME;
57         break;
58       default:
59         fontawesomeClassName = InlineMessageConstatns.DEFAULT_CLASSNAME;
60         break;
61
62     }
63
64     if (messageTxt && messageTxt.length > 0) {
65       return (
66         <Alert bsStyle={level}
67                className={InlineMessageConstatns.ALERT_PANEL_CLASSNAME}>
68           <div className={InlineMessageConstatns.NOTIFICATION_PANEL_CLASSNAME}>
69             <div className={InlineMessageConstatns.ICON_PANEL_CLASSNAME}>
70               <FontAwesome className={fontawesomeClassName}
71                            name={fontawesomeClassName}/>
72             </div>
73             <div className={InlineMessageConstatns.MESSAGE_PANEL_CLASSNAME}>
74               {messageTxt}
75             </div>
76           </div>
77         </Alert>
78       );
79     } else {
80       return false;
81     }
82
83   }
84 }