@krowdy-ui/views
Version:
React components that implement Google's Material Design.
144 lines (127 loc) • 4.05 kB
JavaScript
"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;