UNPKG

@krowdy-ui/views

Version:

React components that implement Google's Material Design.

144 lines (127 loc) 4.05 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.styles = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _clsx = _interopRequireDefault(require("clsx")); var _styles = require("@krowdy-ui/styles"); var _icons = require("@material-ui/icons"); var styles = function styles(theme) { return { big: { height: 44, width: 44 }, 'default': { height: 36, width: 36 }, defaultAvatar: { alignItems: 'center', backgroundColor: 'white', border: "solid 1px ".concat(theme.palette.primary.main), borderRadius: '50%', display: 'flex', fontSize: 14, justifyContent: 'center' // marginRight: theme.spacing(2), }, defaultAvatarNothing: { background: theme.palette.grey[400] }, deleteIcon: { backgroundColor: theme.palette.primary[500], borderRadius: '50%', color: 'white', cursor: 'pointer', display: 'none', height: theme.spacing(1.5), padding: 0, position: 'absolute', right: 0, top: 0, width: theme.spacing(1.5) }, hover: { '&:hover': { border: "solid 3px ".concat(theme.palette.primary[300]) } }, image: { border: "solid 3px ".concat(theme.palette.primary[300]), borderRadius: '50%' // marginRight: theme.spacing(2), }, imageActive: { border: "solid 3px ".concat(theme.palette.primary.main) }, imageDefault: { border: "solid 3px ".concat(theme.palette.grey[300]) }, root: { '&:hover': { '& $deleteIcon': { display: 'block' } }, position: 'relative' }, small: { height: 28, width: 28 } }; }; exports.styles = styles; function AvatarUser(props) { var user = props.user, classes = props.classes, active = props.active, hover = props.hover, _props$size = props.size, size = _props$size === void 0 ? 'default' : _props$size, onDelete = props.onDelete; var acro = "".concat(user.firstName && typeof user.firstName === 'string' ? user.firstName.charAt() : '').concat(user.lastName && typeof user.lastName === 'string' ? user.lastName.charAt() : ''); var _handleClickDelete = function _handleClickDelete() { return onDelete(); }; return /*#__PURE__*/_react["default"].createElement("div", { className: classes.root }, user ? user.photo ? /*#__PURE__*/_react["default"].createElement("img", { alt: acro, className: (0, _clsx["default"])(classes.image, active ? classes.imageActive : hover && classes.hover, active === undefined && classes.imageDefault, { "default": classes["default"], small: classes.small, big: classes.big }[size]), src: user.photo }) : /*#__PURE__*/_react["default"].createElement("div", { className: (0, _clsx["default"])(classes.defaultAvatar, { "default": classes["default"], small: classes.small, big: classes.big }[size]) }, acro) : null // <div className={clsx(classes.defaultAvatar, classes.defaultAvatarNothing )} /> , onDelete && /*#__PURE__*/_react["default"].createElement(_icons.HighlightOff, { className: classes.deleteIcon, fontSize: "small", onClick: _handleClickDelete })); } process.env.NODE_ENV !== "production" ? AvatarUser.propTypes = { active: _propTypes["default"].bool, classes: _propTypes["default"].object, hover: _propTypes["default"].bool, size: _propTypes["default"].string, user: _propTypes["default"].shape({ firstName: _propTypes["default"].string, lastName: _propTypes["default"].string, photo: _propTypes["default"].string }) } : void 0; AvatarUser.muiName = 'AvatarUser'; var _default = (0, _styles.withStyles)(styles, { name: 'AvatarUser' })(AvatarUser); exports["default"] = _default;