import React, {ReactNode} from "react"; import styles from "./Alert.module.scss"; import {X, Check, Info, AlertTriangle} from "react-feather"; interface Props { children: ReactNode; displayed?: boolean; theme?: "success" | "warning" | "error" | "info"; alignItem?: "left" | "center" | "right"; closable?: boolean; fullWidth?: boolean; onClose?: () => void; } export default function Alert({displayed, theme = "success", alignItem = "left", closable, fullWidth, onClose, children}: Props): JSX.Element | null { if (closable && displayed === undefined) { throw new Error("Props displayed is required when closable is define for render control"); } if (displayed || !closable) { return (
{theme === "success" && } {theme === "info" && } {theme === "warning" && } {theme === "error" && }
{children} {closable && }
); } else { return null; } }