import React from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import classNames from 'classnames'; import CheckCircleOutlinedIcon from '@material-ui/icons/CheckCircleOutlined'; import ErrorOutlineOutlinedIcon from '@material-ui/icons/ErrorOutlineOutlined'; import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined'; import CloseIcon from '@material-ui/icons/Close'; import ReportProblemOutlinedIcon from '@material-ui/icons/ReportProblemOutlined'; import messageStyles from 'ba-styles/Messages.scss'; import { Typography, Button, IconButton, Snackbar, SnackbarContent, Grid } from '@material-ui/core'; const variantIcon = { success: CheckCircleOutlinedIcon, warning: ReportProblemOutlinedIcon, error: ErrorOutlineOutlinedIcon, info: InfoOutlinedIcon, }; const styles1 = theme => ({ success: { backgroundColor: '#b6f8c4', }, error: { backgroundColor: '#faabab', }, info: { backgroundColor: '#b2e7f5', }, warning: { backgroundColor: '#f5ea9f', }, icon: { fontSize: 20, color: 'black' }, iconVariant: { opacity: 0.9, marginRight: theme.spacing(1), }, message: { display: 'flex', alignItems: 'center', color: 'black' }, }); function MySnackbarContent(props) { const { classes, className, message, onClose, variant, ...other } = props; const Icon = variantIcon[variant]; return ( {message} )} action={[ , ]} {...other} /> ); } MySnackbarContent.propTypes = { classes: PropTypes.object.isRequired, className: PropTypes.string.isRequired, message: PropTypes.node.isRequired, onClose: PropTypes.func, variant: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired, }; MySnackbarContent.defaultProps = { onClose: () => {} }; const MySnackbarContentWrapper = withStyles(styles1)(MySnackbarContent); const styles = theme => ({ snackbar: { margin: theme.spacing(1), }, divider: { margin: `${theme.spacing(3)}px 0`, }, margin: { margin: theme.spacing(1) } }); const action = ( ); class StyledNotif extends React.Component { state = { openStyle: false, }; handleClickStyle = () => { this.setState({ openStyle: true }); }; handleCloseStyle = (event, reason) => { if (reason === 'clickaway') { return; } this.setState({ openStyle: false }); }; render() { const { classes } = this.props; return ( Default Styled Notification Custom Styled Notification with CSS
); } } StyledNotif.propTypes = { classes: PropTypes.object.isRequired, }; export default withStyles(styles)(StyledNotif);