@sitecore/sc-contenthub-blok
Version:
A UI library for [Sitecore Content Hub](https://doc.sitecore.com/ch/).
26 lines • 1.95 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { css } from "@emotion/css";
import { useEffect, useState, } from "react";
import { BlokIcon } from "../BlokIcon/BlokIcon";
import { BlokIconButton } from "../BlokIconButton/BlokIconButton";
import { Alert, AlertTitle } from "../CoreComponents";
const classes = {
actionsWrapper: css({ display: "flex", alignItems: "center" }),
};
export const alertIconMap = {
error: "m-icon-alert-circle",
info: "m-icon-information",
warning: "m-icon-alert",
success: "m-icon-check-circle",
neutral: "m-icon-information",
ai: "m-icon-creation",
};
export const BlokAlert = ({ dismissible, onClose, alertTitle, children, severity = "info", isCollapsed = false, isCollapsible = false, closeMessage = "Close", toggleMessage = "Toggle", iconName, }) => {
const [isCollapsedState, setIsCollapsedState] = useState(isCollapsed);
const infoIcon = _jsx(BlokIcon, { icon: iconName ?? alertIconMap[severity] });
useEffect(() => {
setIsCollapsedState(isCollapsed);
}, [isCollapsed]);
return (_jsxs(Alert, { severity: severity, action: _jsxs("div", { className: classes.actionsWrapper, children: [!!onClose && dismissible && (_jsx(BlokIconButton, { size: "small", id: "dismiss-info-box", onClick: onClose, "aria-label": closeMessage, children: _jsx(BlokIcon, { icon: "close" }) })), isCollapsible && (_jsx(BlokIconButton, { id: "toggle-info-box", size: "small", onClick: () => setIsCollapsedState((prevState) => !prevState), "aria-label": toggleMessage, children: _jsx(BlokIcon, { icon: isCollapsedState ? "m-icon-chevron-down" : "m-icon-chevron-up" }) }))] }), icon: infoIcon, className: isCollapsedState ? "MuiAlert-collapsed" : "", children: [alertTitle && _jsx(AlertTitle, { children: alertTitle }), !isCollapsedState && (_jsx("div", { className: "MuiAlert-inner-content", children: children }))] }));
};
//# sourceMappingURL=BlokAlert.js.map