UNPKG

react-fontawesome

Version:

A React component for the font-awesome icon library.

115 lines (92 loc) 3.56 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /** * A React component for the font-awesome icon library. * * * @param {Boolean} [border=false] Whether or not to show a border radius * @param {String} [className] An extra set of CSS classes to add to the component * @param {Boolean} [fixedWidth=false] Make buttons fixed width * @param {String} [flip=false] Flip the icon's orientation. * @param {Boolean} [inverse=false]Inverse the icon's color * @param {String} name Name of the icon to use * @param {Boolean} [pulse=false] Rotate icon with 8 steps (rather than smoothly) * @param {Number} [rotate] The degress to rotate the icon by * @param {String} [size] The icon scaling size * @param {Boolean} [spin=false] Spin the icon * @param {String} [stack] Stack an icon on top of another * @module FontAwesome * @type {ReactClass} */ exports.default = _react2.default.createClass({ displayName: 'FontAwesome', propTypes: { border: _react2.default.PropTypes.bool, className: _react2.default.PropTypes.string, fixedWidth: _react2.default.PropTypes.bool, flip: _react2.default.PropTypes.oneOf(['horizontal', 'vertical']), inverse: _react2.default.PropTypes.bool, name: _react2.default.PropTypes.string.isRequired, pulse: _react2.default.PropTypes.bool, rotate: _react2.default.PropTypes.oneOf([90, 180, 270]), size: _react2.default.PropTypes.oneOf(['lg', '2x', '3x', '4x', '5x']), spin: _react2.default.PropTypes.bool, stack: _react2.default.PropTypes.oneOf(['1x', '2x']) }, render: function render() { var _props = this.props; var border = _props.border; var fixedWidth = _props.fixedWidth; var flip = _props.flip; var inverse = _props.inverse; var name = _props.name; var pulse = _props.pulse; var rotate = _props.rotate; var size = _props.size; var spin = _props.spin; var stack = _props.stack; var props = _objectWithoutProperties(_props, ['border', 'fixedWidth', 'flip', 'inverse', 'name', 'pulse', 'rotate', 'size', 'spin', 'stack']); var className = 'fa fa-' + name; if (size) { className += ' fa-' + size; } if (spin) { className += ' fa-spin'; } if (pulse) { className += ' fa-pulse'; } if (border) { className += ' fa-border'; } if (fixedWidth) { className += ' fa-fw'; } if (inverse) { className += ' fa-inverse'; } if (flip) { className += ' fa-flip-' + flip; } if (rotate) { className += ' fa-rotate-' + rotate; } if (stack) { className += ' fa-stack-' + stack; } if (this.props.className) { className += ' ' + this.props.className; } return _react2.default.createElement('span', _extends({}, props, { className: className })); } }); module.exports = exports['default'];