@yandex/ui
Version:
Yandex UI components
36 lines (35 loc) • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserPic = exports.cnUserPic = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var classname_1 = require("@bem-react/classname");
require("./UserPic.css");
exports.cnUserPic = classname_1.cn('UserPic');
var getAvatarURL = function (host, avatarId, isRetina) {
if (host === void 0) { host = 'https://avatars.mds.yandex.net'; }
if (avatarId === void 0) { avatarId = '0/0-0'; }
return host + "/get-yapic/" + avatarId + "/" + (isRetina ? 'islands-retina-middle' : 'islands-middle');
};
/**
* Компонент для создания иконки авторизованного пользователя (аватарки).
* @param {IUserPicProps} props
*/
var UserPic = function (_a) {
var host = _a.host, avatarId = _a.avatarId, lodpiUrl = _a.lodpiUrl, hidpiUrl = _a.hidpiUrl, plus = _a.plus, className = _a.className, innerRef = _a.innerRef, addonAfter = _a.addonAfter,
// @ts-ignore
size = _a.size, props = tslib_1.__rest(_a, ["host", "avatarId", "lodpiUrl", "hidpiUrl", "plus", "className", "innerRef", "addonAfter", "size"]);
react_1.useEffect(function () {
console.assert(size !== undefined, 'Модификатор size скоро станет обязательным, добавьте пожалуйста размер');
}, []);
if (!lodpiUrl) {
lodpiUrl = getAvatarURL(host, avatarId, false);
hidpiUrl = getAvatarURL(host, avatarId, true);
}
var srcSet = hidpiUrl ? lodpiUrl + " 1x, " + hidpiUrl + " 2x" : undefined;
return (react_1.default.createElement("div", { className: exports.cnUserPic({ hasPlus: plus }, [className]), ref: innerRef },
react_1.default.createElement("img", tslib_1.__assign({}, props, { src: lodpiUrl, className: exports.cnUserPic('Image'), srcSet: srcSet })),
addonAfter));
};
exports.UserPic = UserPic;
exports.UserPic.displayName = exports.cnUserPic();