UNPKG

electrode-houseparty-example-component

Version:
86 lines (64 loc) 2.69 kB
"use strict"; exports.__esModule = true; var _assign = require("babel-runtime/core-js/object/assign"); var _assign2 = _interopRequireDefault(_assign); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _renderFriend = require("../../src/styles/render-friend.css"); var _renderFriend2 = _interopRequireDefault(_renderFriend); var _graphStyles = require("../helpers/graph-styles"); var _graphStyles2 = _interopRequireDefault(_graphStyles); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var DEFAULT_SIZE = 15; var DEGREES_OF_COOL = 360; var RenderFriend = function RenderFriend(_ref) { var friend = _ref.friend; var styleObj = _ref.styleObj; var className = _ref.className; var contrLink = _ref.contrLink; var name = friend.name; var img = friend.img; var profile = friend.profile; var friends = friend.friends; var size = friend.size; var parentFriend = { name: name, img: img, profile: profile }; size = size || DEFAULT_SIZE; var bgImg = { backgroundImage: "url(" + img + ")" }; var applyStyle = styleObj ? (0, _assign2.default)(bgImg, styleObj) : (0, _assign2.default)(bgImg, (0, _graphStyles2.default)("single", size)); applyStyle = friends ? (0, _graphStyles2.default)("container", size) : applyStyle; var applyClass = friends ? _renderFriend2.default.join : _renderFriend2.default.friend; applyClass = styleObj ? applyClass : applyClass + " " + _renderFriend2.default.join + " " + (className || ""); var renderFriends = function renderFriends(friendsArr) { var angleVal = DEGREES_OF_COOL / friendsArr.length; var rotateVal = 0; return friendsArr.map(function (friendObj) { rotateVal += angleVal; return _react2.default.createElement(RenderFriend, { key: friendObj.name, friend: friendObj, styleObj: (0, _graphStyles2.default)("child", size, rotateVal), contrLink: friendObj.profile }); }); }; var renderComponent = function renderComponent() { return _react2.default.createElement( "div", { className: applyClass, style: applyStyle }, !!friends && renderFriends(friends), !!friends && _react2.default.createElement(RenderFriend, { friend: parentFriend, styleObj: (0, _graphStyles2.default)("parent", size) }) ); }; if (contrLink) { return _react2.default.createElement( "a", { href: contrLink, target: "_blank" }, renderComponent() ); } return renderComponent(); }; RenderFriend.propTypes = { friend: _react2.default.PropTypes.object, styleObj: _react2.default.PropTypes.object }; exports.default = RenderFriend;