UNPKG

react-kube

Version:

Kube CSS in React Components

93 lines (75 loc) 4.2 kB
"use strict"; var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } var _reactAddons = require("react/addons"); var _reactAddons2 = _interopRequireDefault(_reactAddons); var _classnames = require("classnames"); var _classnames2 = _interopRequireDefault(_classnames); var navItemStyle = undefined; var NavigationItem = (function (_React$Component) { function NavigationItem() { _classCallCheck(this, NavigationItem); if (_React$Component != null) { _React$Component.apply(this, arguments); } } _inherits(NavigationItem, _React$Component); _createClass(NavigationItem, [{ key: "handleClick", value: function handleClick() { this.props.onItemClick ? this.props.onItemClick(this.props.index) : null; //eslint-disable-line this.props.onClick ? this.props.onClick() : null; //eslint-disable-line } }, { key: "componentWillMount", value: function componentWillMount() { navItemStyle = this.props.logo ? _reactAddons2["default"].addons.update(this.props.style, { $merge: { "marginRight": "50px" } }) : this.props.style; } }, { key: "render", value: function render() { var iconStyles = this.props.icon ? "fa " + "fa-" + this.props.icon : ""; var classes = (0, _classnames2["default"])({ "active": this.props.active, "hide-on-mobile": this.props.hideOnMobile, "left": this.props.logo, "upper": this.props.uppercase }); return _reactAddons2["default"].createElement( "li", { className: (0, _classnames2["default"])(this.props.className, classes), id: this.props.id, index: this.props.index, onClick: this.handleClick.bind(this), style: navItemStyle }, this.props.active ? _reactAddons2["default"].createElement( "span", { className: iconStyles }, this.props.children ) : _reactAddons2["default"].createElement( "a", { href: this.props.url, style: { color: this.props.color ? this.props.color : "inherit", cursor: "pointer" }, target: this.props.target ? this.props.target : "_self" }, this.props.children ) ); } }]); return NavigationItem; })(_reactAddons2["default"].Component); NavigationItem.propTypes = { active: _reactAddons2["default"].PropTypes.bool, children: _reactAddons2["default"].PropTypes.node, className: _reactAddons2["default"].PropTypes.string, color: _reactAddons2["default"].PropTypes.string, hideOnMobile: _reactAddons2["default"].PropTypes.bool, icon: _reactAddons2["default"].PropTypes.string, id: _reactAddons2["default"].PropTypes.string, index: _reactAddons2["default"].PropTypes.number, logo: _reactAddons2["default"].PropTypes.bool, onItemClick: _reactAddons2["default"].PropTypes.func, style: _reactAddons2["default"].PropTypes.object, sub: _reactAddons2["default"].PropTypes.bool, target: _reactAddons2["default"].PropTypes.string, uppercase: _reactAddons2["default"].PropTypes.bool, url: _reactAddons2["default"].PropTypes.string }; NavigationItem.defaultProps = { icon: null, logo: false, style: {} }; module.exports = NavigationItem;