UNPKG

1.48 kBJavaScriptView Raw
1var React = require('react')
2
3module.exports = React.createClass({
4
5 propTypes: {
6 name: React.PropTypes.string.isRequired,
7 size: React.PropTypes.oneOf(['1x', '2x', '3x', '4x', '5x']),
8 spin: React.PropTypes.bool,
9 pulse: React.PropTypes.bool,
10 border: React.PropTypes.bool,
11 fixedWidth: React.PropTypes.bool,
12 inverse: React.PropTypes.bool,
13 flip: React.PropTypes.oneOf(['horizontal', 'vertical']),
14 rotate: React.PropTypes.oneOf(['90', '180', '270']),
15 stack: React.PropTypes.oneOf(['1x', '2x'])
16 },
17
18 render: function () {
19 var className = 'fa fa-' + this.props.name
20
21 if (this.props.size) {
22 className += ' fa-' + this.props.size
23 }
24
25 if (this.props.spin) {
26 className += ' fa-spin'
27 }
28
29 if (this.props.pulse) {
30 className += ' fa-pulse'
31 }
32
33 if (this.props.border) {
34 className += ' fa-border'
35 }
36
37 if (this.props.fixedWidth) {
38 className += ' fa-fw'
39 }
40
41 if (this.props.inverse) {
42 className += ' fa-inverse'
43 }
44
45 if (this.props.flip) {
46 className += ' fa-flip-' + this.props.flip
47 }
48
49 if (this.props.rotate) {
50 className += ' fa-rotate-' + this.props.rotate
51 }
52
53 if (this.props.stack) {
54 className += ' fa-stack-' + this.props.stack
55 }
56
57 if (this.props.className) {
58 className += ' ' + this.props.className
59 }
60
61 var props = this.props;
62 props.className = className;
63
64 return React.createElement('span', props)
65 }
66})