UNPKG

amplify-material-ui

Version:

A Material-UI based implementation of aws amplify

82 lines (81 loc) 3.72 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Toast = void 0; var React = __importStar(require("react")); var clsx_1 = __importDefault(require("clsx")); var CheckCircle_1 = __importDefault(require("@mui/icons-material/CheckCircle")); var Error_1 = __importDefault(require("@mui/icons-material/Error")); var Info_1 = __importDefault(require("@mui/icons-material/Info")); var Close_1 = __importDefault(require("@mui/icons-material/Close")); var Warning_1 = __importDefault(require("@mui/icons-material/Warning")); var material_1 = require("@mui/material"); var makeStyles_1 = __importDefault(require("@mui/styles/makeStyles")); var variantIcon = { success: CheckCircle_1.default, warning: Warning_1.default, error: Error_1.default, info: Info_1.default, }; var useStyles = (0, makeStyles_1.default)(function (theme) { return ({ success: { backgroundColor: material_1.colors.green[600], }, error: { backgroundColor: theme.palette.error.dark, }, info: { backgroundColor: theme.palette.primary.dark, }, warning: { backgroundColor: material_1.colors.amber[700], }, icon: { fontSize: 20, }, iconVariant: { opacity: 0.9, marginRight: theme.spacing(1), }, message: { display: 'flex', alignItems: 'center', }, }); }); var Toast = function (props) { var _a = props.autoHideDuration, autoHideDuration = _a === void 0 ? 6000 : _a, _b = props.anchorOrigin, anchorOrigin = _b === void 0 ? { vertical: 'top', horizontal: 'center', } : _b, className = props.className, content = props.content, _c = props.variant, variant = _c === void 0 ? 'info' : _c, _d = props.open, open = _d === void 0 ? false : _d, onClose = props.onClose; var classes = useStyles(); var Icon = variantIcon[variant]; return (React.createElement(material_1.Snackbar, { anchorOrigin: anchorOrigin, open: open, autoHideDuration: autoHideDuration, onClose: onClose }, React.createElement(material_1.SnackbarContent, { className: (0, clsx_1.default)(classes[variant], className), "aria-describedby": "client-snackbar", message: React.createElement("span", { id: "client-snackbar", className: classes.message }, React.createElement(Icon, { className: (0, clsx_1.default)(classes.icon, classes.iconVariant) }), content), action: [ React.createElement(material_1.IconButton, { key: "close", "aria-label": "Close", color: "inherit", onClick: onClose, size: "large" }, React.createElement(Close_1.default, { className: classes.icon })), ] }))); }; exports.Toast = Toast;