UNPKG

@yandex/ui

Version:

Yandex UI components

32 lines (31 loc) 1.77 kB
import { __assign, __rest } from "tslib"; import React, { useEffect } from 'react'; import { cn } from '@bem-react/classname'; import './UserPic.css'; export var cnUserPic = 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 */ export 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 = __rest(_a, ["host", "avatarId", "lodpiUrl", "hidpiUrl", "plus", "className", "innerRef", "addonAfter", "size"]); 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.createElement("div", { className: cnUserPic({ hasPlus: plus }, [className]), ref: innerRef }, React.createElement("img", __assign({}, props, { src: lodpiUrl, className: cnUserPic('Image'), srcSet: srcSet })), addonAfter)); }; UserPic.displayName = cnUserPic();