UNPKG

@yandex/ui

Version:

Yandex UI components

36 lines (35 loc) 2.01 kB
"use strict"; 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();