UNPKG

@krowdy-ui/views

Version:

React components that implement Google's Material Design.

133 lines (114 loc) 3.83 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _clsx = _interopRequireDefault(require("clsx")); var _core = require("@krowdy-ui/core"); var _icons = require("@material-ui/icons"); var _views = require("@krowdy-ui/views"); var styles = function styles() { return { color: function color(_ref) { var iconColor = _ref.iconColor; return { backgroundColor: iconColor || 'transparent' }; }, container: { position: 'relative' }, popper: { zIndex: 1200 }, primary: {}, secondary: {} }; }; var _ref3 = /*#__PURE__*/_react["default"].createElement(_icons.ArrowDropDown, null); var SelectInfo = function SelectInfo(_ref2) { var children = _ref2.children, title = _ref2.title, subtitle = _ref2.subtitle, icon = _ref2.icon, src = _ref2.src, _ref2$rightIcon = _ref2.rightIcon, rightIcon = _ref2$rightIcon === void 0 ? _ref3 : _ref2$rightIcon, width = _ref2.width, disabled = _ref2.disabled, _ref2$variant = _ref2.variant, variant = _ref2$variant === void 0 ? 'outlined' : _ref2$variant, classes = _ref2.classes, secondaryTypographyProps = _ref2.secondaryTypographyProps, primaryTypographyProps = _ref2.primaryTypographyProps, rightIconHover = _ref2.rightIconHover, clickAndClose = _ref2.clickAndClose; var _React$useState = _react["default"].useState(null), _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2), anchorEl = _React$useState2[0], setAnchorEl = _React$useState2[1]; var _handleClick = function _handleClick() { return function (event) { setAnchorEl(anchorEl ? null : event.currentTarget); }; }; var _handleClose = function _handleClose() { setAnchorEl(null); }; var open = Boolean(anchorEl); var id = open ? 'simple-popover' : undefined; return /*#__PURE__*/_react["default"].createElement("div", { className: classes.container }, /*#__PURE__*/_react["default"].createElement(_views.ListInfoItem, { classes: { avatar: (0, _clsx["default"])(src && classes.color), primary: classes.primary, secondary: classes.secondary }, disabled: disabled, icon: icon, onChange: _handleClick, primaryTypographyProps: primaryTypographyProps, rightIcon: rightIcon, rightIconHover: rightIconHover, secondaryTypographyProps: secondaryTypographyProps, src: src, subtitle: subtitle, title: title, variant: variant, width: width }), children ? /*#__PURE__*/_react["default"].createElement(_core.Popover, { anchorEl: anchorEl, anchorOrigin: { horizontal: 'center', vertical: 'center' }, disablePortal: true, id: id, keepMounted: false, onClick: clickAndClose ? _handleClose : undefined, onClose: _handleClose, open: open, transformOrigin: { horizontal: 'center', vertical: 'center' } }, children) : null); }; process.env.NODE_ENV !== "production" ? SelectInfo.propTypes = { disabled: _propTypes["default"].bool, icon: _propTypes["default"].element, rightIcon: _propTypes["default"].element, src: _propTypes["default"].string, subtitle: _propTypes["default"].string, title: _propTypes["default"].string, width: _propTypes["default"].number } : void 0; var _default = (0, _core.withStyles)(styles, { name: 'SelectInfo' })(SelectInfo); exports["default"] = _default;