import { Alert, Box, Collapse, IconButton, Typography } from "@mui/material";
import { styled } from "@mui/material/styles";
import { useEffect, useState } from "react";
import GhostStyledIcon from "../Icon/GhostIcon";
import CloseIcon from '@mui/icons-material/Close';
const PREFIX = "Notification";
const classes = {
root: `${PREFIX}-root`,
icon: `${PREFIX}-icon`,
text: `${PREFIX}-text`,
};
const StyledCollapse = styled(Collapse, { shouldForwardProp: prop => prop !== "square" })(
({ theme, square }) => ({
[`& .${classes.root}`]: {
borderRadius: square ? "0px" : "9px",
paddingTop: "9px",
paddingBottom: "9px",
marginBottom: "10px",
wordBreak: "break-word",
justifyContent: "center",
color: theme.colors.gray[700],
"& a": {
fontWeight: "500",
color: theme.colors.gray[700],
textDecoration: "underline",
},
"& .MuiAlert-message": {
padding: "0px",
flexGrow: "1",
},
"& .MuiAlert-action": {
paddingLeft: "0px",
"& .MuiIconButton-sizeSmall": {
padding: "0px",
"& .MuiSvgIcon-fontSizeSmall": {
fontSize: "1.14rem",
},
},
},
"&.MuiAlert-filledSuccess": {
color: "#253449",
},
},
[`& .${classes.icon}`]: {
fontSize: "16.5px",
marginRight: "9px",
},
[`& .${classes.text}`]: {
fontSize: "15px",
lineHeight: "24px",
},
}),
);
const Notification = ({
template = "info",
dismissible = false,
onDismiss,
show,
square = false,
...props
}) => {
let icon;
let severity = props.severity;
let variant = props.variant;
switch (template) {
case "default":
severity = "info";
variant = "filled";
break;
case "success":
icon = "check-circle";
severity = "success";
variant = "filled";
break;
case "error":
icon = "alert-circle";
severity = "error";
variant = "filled";
break;
case "info":
icon = "info";
severity = "info";
variant = "filled";
break;
case "warning":
icon = "info";
severity = "warning";
variant = "filled";
break;
}
const action =
props.action || dismissible === false ? (
props.action
) : (
{
setOpen(false);
if (onDismiss) {
onDismiss();
}
}}
>
);
const [open, setOpen] = useState(true);
useEffect(() => {
if (show === true) {
setOpen(true);
}
}, [show]);
return (
{icon && }
{props.children}
);
};
export default Notification;