electrode-houseparty-example-component
Version:
electrode-houseparty-example-component
86 lines (64 loc) • 2.69 kB
JavaScript
"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;