UNPKG

@krowdy-ui/views

Version:

React components that implement Google's Material Design.

109 lines (107 loc) 2.8 kB
import React from 'react'; import PropTypes from 'prop-types'; import { Tooltip, Typography, withStyles } from '@material-ui/core'; import { AvatarUser } from '@krowdy-ui/views'; const styles = { avatar: {}, point: { backgroundColor: 'white', borderRadius: '50%', height: ({ size = 8 }) => size, width: ({ size = 8 }) => size }, root: { '& $avatar': { display: 'none' }, '& $point': {}, '&:hover': { '& $avatar': { display: 'block' }, '& $point': { display: 'none' } }, alignItems: 'center', bottom: ({ bottom = 0 }) => bottom, display: 'flex', height: 12, justifyContent: 'center', left: ({ leftPercent = 0 }) => `calc(${leftPercent}% - 6px)`, position: 'absolute', width: 12 }, tooltipTitle: { fontSize: 12, fontWeight: 'bold' } }; const UserPoint = ({ classes, subtitle = '', photo, active = false, firstName = '', lastName = '' }) => { if (active) return /*#__PURE__*/React.createElement("div", { className: classes.root }, /*#__PURE__*/React.createElement(Tooltip, { arrow: true, 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, size: "small", user: { firstName, lastName, photo } })))); return /*#__PURE__*/React.createElement("div", { className: classes.root }, /*#__PURE__*/React.createElement("div", { className: classes.avatar }, /*#__PURE__*/React.createElement(Tooltip, { arrow: true, title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Typography, { className: classes.tooltipTitle }, firstName, " ", lastName), /*#__PURE__*/React.createElement(Typography, null, subtitle)), TransitionProps: { timeout: 0 } }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarUser, { active: false, size: "small", user: { firstName, lastName, photo } })))), /*#__PURE__*/React.createElement("div", { className: classes.point })); }; process.env.NODE_ENV !== "production" ? UserPoint.propTypes = { active: PropTypes.bool, firstName: PropTypes.string, lastName: PropTypes.string, leftPercent: PropTypes.number, photo: PropTypes.string, size: PropTypes.number, subtitle: PropTypes.string } : void 0; export default withStyles(styles, { name: 'UserPoint' })(UserPoint);