@krowdy-ui/views
Version:
React components that implement Google's Material Design.
146 lines (144 loc) • 4.76 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import clsx from 'clsx';
import { withStyles } from '@krowdy-ui/styles';
import { Typography, Card, CardHeader, Avatar, Tooltip } from '@krowdy-ui/core';
export var styles = function styles(theme) {
return {
actionContainer: {
alignItems: 'center',
display: 'flex'
},
actionHoverableContainer: {
display: 'none',
marginRight: theme.spacing(1)
},
avatar: {
border: "1px solid ".concat(theme.palette.grey[400]),
fontSize: 10,
height: 28,
width: 28
},
container: {
alignItems: 'center',
display: 'flex'
},
fullName: {
cursor: 'default',
overflow: 'hidden',
'text-overflow': 'ellipsis',
'white-space': 'nowrap',
width: 132
},
header: {
padding: theme.spacing(1)
},
headerAction: {
marginTop: theme.spacing(1 / 8)
},
leftContainer: {
color: function color(_ref) {
var _ref$primaryColorNumb = _ref.primaryColorNumber,
primaryColorNumber = _ref$primaryColorNumb === void 0 ? false : _ref$primaryColorNumb;
return primaryColorNumber ? theme.palette.primary[500] : theme.palette.secondary[900];
},
fontSize: 10,
marginBottom: theme.spacing(1),
marginRight: theme.spacing(.75),
maxWidth: 12,
minWidth: 12,
width: 12
},
rightContainer: {
flex: 1
},
root: {
'&:hover': {
'& $actionHoverableContainer': {
display: 'block'
}
},
borderRadius: 8
}
};
};
var CardCandidateRanking = function CardCandidateRanking(_ref2) {
var _ref2$lastName = _ref2.lastName,
lastName = _ref2$lastName === void 0 ? '' : _ref2$lastName,
_ref2$firstName = _ref2.firstName,
firstName = _ref2$firstName === void 0 ? '' : _ref2$firstName,
_ref2$photo = _ref2.photo,
photo = _ref2$photo === void 0 ? '' : _ref2$photo,
classes = _ref2.classes,
action = _ref2.action,
actionHoverable = _ref2.actionHoverable,
position = _ref2.position,
paddingLeft = _ref2.paddingLeft,
_ref2$selected = _ref2.selected,
selected = _ref2$selected === void 0 ? false : _ref2$selected,
className = _ref2.className,
_ref2$onClick = _ref2.onClick,
onClick = _ref2$onClick === void 0 ? function () {} : _ref2$onClick;
var Container = position || paddingLeft ? function (_ref3) {
var children = _ref3.children;
return /*#__PURE__*/React.createElement("div", {
className: classes.container
}, /*#__PURE__*/React.createElement(Typography, {
className: classes.leftContainer
}, !paddingLeft && position), /*#__PURE__*/React.createElement("div", {
className: classes.rightContainer
}, children));
} : function (_ref4) {
var children = _ref4.children;
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
};
return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Card, {
className: clsx(classes.root, className),
hoverable: true,
onClick: onClick,
selected: selected,
variant: "outlined"
}, /*#__PURE__*/React.createElement(CardHeader, {
action: /*#__PURE__*/React.createElement("div", {
className: classes.actionContainer
}, /*#__PURE__*/React.createElement("div", {
className: classes.actionHoverableContainer
}, actionHoverable), action),
avatar: /*#__PURE__*/React.createElement(Avatar, {
alt: "".concat(firstName, " ").concat(lastName),
className: classes.avatar,
src: photo
}, !photo && "".concat(firstName ? firstName[0] : '', " ").concat(lastName ? lastName[0] : '')),
classes: {
action: classes.headerAction
},
className: classes.header,
title: /*#__PURE__*/React.createElement(Tooltip, {
placement: "top",
title: "".concat(firstName, " ").concat(lastName)
}, /*#__PURE__*/React.createElement(Typography, {
component: "span"
}, firstName, " ", lastName)),
titleTypographyProps: {
className: classes.fullName
}
})));
};
process.env.NODE_ENV !== "production" ? CardCandidateRanking.propTypes = {
action: PropTypes.node,
actionHoverable: PropTypes.node,
className: PropTypes.string,
classes: PropTypes.object,
firstName: PropTypes.string,
lastName: PropTypes.string,
onClick: PropTypes.func,
paddingLeft: PropTypes.bool,
photo: PropTypes.string,
position: PropTypes.number,
primaryColorNumber: PropTypes.bool,
selected: PropTypes.bool
} : void 0;
CardCandidateRanking.muiName = 'CardCandidateRanking';
export default withStyles(styles, {
name: 'CardCandidateRanking'
})(CardCandidateRanking);