UNPKG

kitten-components

Version:
174 lines (128 loc) 6.24 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.TeamCardIcons = undefined; 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; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _radium = require('radium'); var _radium2 = _interopRequireDefault(_radium); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _buttonIcon = require('kitten/components/buttons/button-icon'); var _linkedinIcon = require('kitten/components/icons/linkedin-icon'); var _twitterIcon = require('kitten/components/icons/twitter-icon'); var _marger = require('kitten/components/layout/marger'); var _emailIcon = require('kitten/components/icons/email-icon'); var _phoneIcon = require('kitten/components/cards/team-card/phone-icon'); var _deprecated = require('prop-types-extra/lib/deprecated'); var _deprecated2 = _interopRequireDefault(_deprecated); 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var Marger = (0, _radium2.default)(_marger.Marger); var TeamCardIcons = exports.TeamCardIcons = function (_Component) { _inherits(TeamCardIcons, _Component); function TeamCardIcons() { var _ref; var _temp, _this, _ret; _classCallCheck(this, TeamCardIcons); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = TeamCardIcons.__proto__ || Object.getPrototypeOf(TeamCardIcons)).call.apply(_ref, [this].concat(args))), _this), _this.getSocialLinks = function () { var _this$props = _this.props, links = _this$props.links, socialLink = _this$props.socialLink; if (links) return links; // handle deprecated `socialLink` prop if (socialLink) return [{ name: 'linkedin', href: socialLink }]; }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(TeamCardIcons, [{ key: 'render', value: function render() { var _props = this.props, email = _props.email, phoneNumber = _props.phoneNumber, links = _props.links; return _react2.default.createElement( Marger, { top: '1.5', style: styles.icons }, email && _react2.default.createElement( _buttonIcon.ButtonIcon, { tag: 'a', href: 'mailto:' + email, modifier: 'hydrogen', className: 'k-ButtonIcon--phone', style: { marginRight: 15 } }, _react2.default.createElement(_emailIcon.EmailIcon, { className: 'k-ButtonIcon__svg' }) ), phoneNumber && _react2.default.createElement(_phoneIcon.TeamCardPhoneIcon, this.props), _react2.default.createElement(SocialLinks, { links: this.getSocialLinks() }) ); } }]); return TeamCardIcons; }(_react.Component); TeamCardIcons.propTypes = { email: _propTypes2.default.string, phoneNumber: _propTypes2.default.string, links: _propTypes2.default.oneOf(['linkedin', 'twitter']), // Deprecated. socialLink: (0, _deprecated2.default)(_propTypes2.default.string, 'Prefer use links prop') }; TeamCardIcons.defaultProps = { email: '', phoneNumber: '', links: [] }; var SocialLinks = function (_Component2) { _inherits(SocialLinks, _Component2); function SocialLinks() { _classCallCheck(this, SocialLinks); return _possibleConstructorReturn(this, (SocialLinks.__proto__ || Object.getPrototypeOf(SocialLinks)).apply(this, arguments)); } _createClass(SocialLinks, [{ key: 'render', value: function render() { var links = this.props.links; return _react2.default.createElement( _react.Fragment, null, links.map(function (link, index) { if (!link.href) return; var buttonStyle = void 0; if (index !== links.length - 1) { buttonStyle = { marginRight: 15 }; } return _react2.default.createElement( _buttonIcon.ButtonIcon, { tag: 'a', key: link.name, href: link.href, modifier: link.name, size: 'tiny', target: '_blank', rel: 'noopener', style: buttonStyle }, link.name === 'linkedin' && _react2.default.createElement(_linkedinIcon.LinkedinIcon, { className: 'k-ButtonIcon__svg' }), link.name === 'twitter' && _react2.default.createElement(_twitterIcon.TwitterIcon, { className: 'k-ButtonIcon__svg' }) ); }) ); } }]); return SocialLinks; }(_react.Component); var styles = { icons: { display: 'flex' } };