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;