@krowdy-ui/views
Version:
React components that implement Google's Material Design.
111 lines (109 loc) • 3.05 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import clsx from 'clsx';
import { withStyles, Tooltip, Typography } from '@krowdy-ui/core';
import { AvatarUser } from '@krowdy-ui/views';
var Avatar = function Avatar(props) {
var subtitle = props.subtitle,
photo = props.photo,
active = props.active,
selected = props.selected,
firstName = props.firstName,
lastName = props.lastName,
classes = props.classes;
return /*#__PURE__*/React.createElement("div", {
className: classes.hover
}, /*#__PURE__*/React.createElement("div", {
className: clsx(classes.root, !selected && classes.unselected)
}, /*#__PURE__*/React.createElement(Tooltip, {
arrow: true,
placement: "top",
title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Typography, {
className: classes.tooltipTitle
}, firstName, " ", lastName), /*#__PURE__*/React.createElement(Typography, null, subtitle))
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarUser, {
active: active,
hover: true,
size: "small",
user: {
firstName: firstName,
lastName: lastName,
photo: photo
}
})))));
};
process.env.NODE_ENV !== "production" ? Avatar.propTypes = {
active: PropTypes.bool,
classes: PropTypes.shape({
avatar: PropTypes.string,
hover: PropTypes.string,
point: PropTypes.string,
root: PropTypes.string,
tooltipTitle: PropTypes.string,
unselected: PropTypes.string
}),
firstName: PropTypes.string,
lastName: PropTypes.string,
photo: PropTypes.string,
selected: PropTypes.bool,
subtitle: PropTypes.string
} : void 0;
export default withStyles(function () {
return {
avatar: {},
hover: {
'&:hover': {
'& $unselected': {
visibility: 'visible'
}
}
},
point: {
backgroundColor: 'white',
borderRadius: '50%',
height: function height(_ref) {
var _ref$size = _ref.size,
size = _ref$size === void 0 ? 0 : _ref$size;
return size;
},
width: function width(_ref2) {
var _ref2$size = _ref2.size,
size = _ref2$size === void 0 ? 0 : _ref2$size;
return size;
}
},
root: {
'& $avatar': {
display: 'none'
},
'& $point': {},
'&:hover': {
'& $avatar': {
display: 'block'
},
'& $point': {
display: 'none'
}
},
alignItems: 'center',
display: 'flex',
height: 28,
justifyContent: 'center',
left: function left(_ref3) {
var _ref3$leftPercent = _ref3.leftPercent,
leftPercent = _ref3$leftPercent === void 0 ? 0 : _ref3$leftPercent;
return "calc(".concat(leftPercent, "% - 6px)");
},
width: 28
},
tooltipTitle: {
fontSize: 12,
fontWeight: 'bold'
},
unselected: {
visibility: 'hidden'
}
};
}, {
name: 'Avatar'
})(Avatar);