decentraland-ui
Version:
Decentraland's UI components and styles
98 lines (97 loc) • 5.31 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Profile = void 0;
var React = __importStar(require("react"));
var Logo_1 = require("../Logo/Logo");
var Popup_1 = require("../Popup/Popup");
var AvatarFace_1 = require("../AvatarFace/AvatarFace");
var Blockie_1 = require("../Blockie/Blockie");
require("./Profile.css");
var Profile = function (props) {
var address = props.address, avatar = props.avatar, textOnly = props.textOnly, imageOnly = props.imageOnly, hasPopup = props.hasPopup, _a = props.inline, inline = _a === void 0 ? true : _a, _b = props.size, size = _b === void 0 ? 'normal' : _b, _c = props.sliceAddressBy, sliceAddressBy = _c === void 0 ? 6 : _c, isDecentraland = props.isDecentraland, _d = props.as, as = _d === void 0 ? React.Fragment : _d, rest = __rest(props, ["address", "avatar", "textOnly", "imageOnly", "hasPopup", "inline", "size", "sliceAddressBy", "isDecentraland", "as"]);
var sliceLimit = Math.max(Math.min(sliceAddressBy, 42), 6);
var name = React.useMemo(function () {
if (!avatar || !avatar.name) {
return address.slice(0, sliceLimit);
}
if (avatar.hasClaimedName) {
return avatar.name;
}
var lastPart = address ? "#".concat(address.slice(-4)) : '';
return avatar.name.endsWith(lastPart) ? avatar.name : avatar.name + lastPart;
}, [avatar, address, sliceLimit]);
var Wrapper = as;
if (isDecentraland) {
return (React.createElement("span", { className: "Profile decentraland ".concat(size, " ").concat(inline ? 'inline' : ''), title: address },
React.createElement(Wrapper, __assign({}, rest),
React.createElement(Logo_1.Logo, null)),
imageOnly ? null : (React.createElement(Wrapper, __assign({}, rest),
React.createElement("span", { className: "name" }, "Decentraland")))));
}
if (textOnly) {
return React.createElement(Wrapper, __assign({}, rest), name);
}
else {
return (React.createElement(Popup_1.Popup, { content: name, disabled: !hasPopup, position: "top center", trigger: avatar ? (React.createElement("span", { className: "Profile avatar ".concat(size, " ").concat(inline ? 'inline' : ''), title: address },
React.createElement(Wrapper, __assign({}, rest),
React.createElement(AvatarFace_1.AvatarFace, { size: "tiny", inline: inline, avatar: avatar })),
imageOnly ? null : (React.createElement(Wrapper, __assign({}, rest),
React.createElement("span", { className: "name" }, name))))) : (React.createElement("span", { className: "Profile blockie ".concat(size, " ").concat(inline ? 'inline' : ''), title: address },
React.createElement(Wrapper, __assign({}, rest),
React.createElement(Blockie_1.Blockie, __assign({ seed: address, scale: size === 'large'
? 5
: size === 'huge'
? 7
: size === 'massive'
? 21
: 3, as: as }, rest))),
imageOnly ? null : (React.createElement(Wrapper, __assign({}, rest),
React.createElement("span", { className: "name" }, name))))) }));
}
};
exports.Profile = Profile;