UNPKG

@e-group/material-lab

Version:

EGroup Team Lab - Incubator for EGroup Team experimental React components.

75 lines (72 loc) 2.4 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; import React from 'react'; import clsx from 'clsx'; import { makeStyles } from '@material-ui/core/styles'; import { amber, green } from '@material-ui/core/colors'; import { SnackbarContent as MuiSnackbarContent, IconButton } from '@material-ui/core'; import CheckCircleIcon from '@material-ui/icons/CheckCircle'; import ErrorIcon from '@material-ui/icons/Error'; import InfoIcon from '@material-ui/icons/Info'; import WarningIcon from '@material-ui/icons/Warning'; import CloseIcon from '@material-ui/icons/Close'; const variantIcon = { default: undefined, success: CheckCircleIcon, warning: WarningIcon, error: ErrorIcon, info: InfoIcon }; const useStyles = makeStyles(theme => ({ success: { backgroundColor: green[600] }, error: { backgroundColor: theme.palette.error.dark }, info: { backgroundColor: theme.palette.primary.main }, warning: { backgroundColor: amber[700] }, icon: { fontSize: 20 }, iconVariant: { opacity: 0.9, marginRight: theme.spacing(1) }, messageContainer: { display: 'flex', alignItems: 'center' } })); const SnackbarContent = props => { const className = props.className, messageProp = props.message, onCloseClick = props.onCloseClick, _props$variant = props.variant, variant = _props$variant === void 0 ? 'default' : _props$variant, other = _objectWithoutProperties(props, ["className", "message", "onCloseClick", "variant"]); const classes = useStyles(props); const Icon = variantIcon[variant]; const message = typeof messageProp === 'string' ? /*#__PURE__*/React.createElement("span", { className: classes.messageContainer }, Icon && /*#__PURE__*/React.createElement(Icon, { className: clsx(classes.icon, classes.iconVariant) }), messageProp) : messageProp; const action = [/*#__PURE__*/React.createElement(IconButton, { key: "close", color: "inherit", onClick: onCloseClick }, /*#__PURE__*/React.createElement(CloseIcon, { className: classes.icon }))]; return /*#__PURE__*/React.createElement(MuiSnackbarContent, _extends({ className: clsx(classes[variant], className), message: message, action: action }, other)); }; export default SnackbarContent;