import React, { SyntheticEvent } from 'react'; import { useSelector } from 'react-redux'; // material-ui import { Alert, Button, Fade, Grow, IconButton, Slide, SlideProps } from '@mui/material'; import MuiSnackbar from '@mui/material/Snackbar'; // assets import CloseIcon from '@mui/icons-material/Close'; import { DefaultRootStateProps, KeyedObject } from 'types'; // animation function function TransitionSlideLeft(props: SlideProps) { return ; } function TransitionSlideUp(props: SlideProps) { return ; } function TransitionSlideRight(props: SlideProps) { return ; } function TransitionSlideDown(props: SlideProps) { return ; } function GrowTransition(props: SlideProps) { return ; } // animation options const transition: KeyedObject = { SlideLeft: TransitionSlideLeft, SlideUp: TransitionSlideUp, SlideRight: TransitionSlideRight, SlideDown: TransitionSlideDown, Grow: GrowTransition, Fade }; // ==============================|| SNACKBAR ||============================== // const Snackbar = () => { const [open, setOpen] = React.useState(false); const snackbarInitial = useSelector((state: DefaultRootStateProps) => state.snackbar); const handleClose = (reason?: string) => { if (reason === 'clickaway') { return; } setOpen(false); }; React.useEffect(() => { setOpen(snackbarInitial.open); }, [snackbarInitial.action, snackbarInitial.open]); return ( <> {/* default snackbar */} {snackbarInitial.variant === 'default' && ( handleClose(v)} message={snackbarInitial.message} TransitionComponent={transition[snackbarInitial.transition]} action={ <> handleClose()}> } /> )} {/* alert snackbar */} {snackbarInitial.variant === 'alert' && ( handleClose(v)} > {snackbarInitial.actionButton !== false && ( )} {snackbarInitial.close !== false && ( handleClose()}> )} } > {snackbarInitial.message} )} ); }; export default Snackbar;