UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

92 lines (91 loc) 2.28 kB
import { jsx } from "react/jsx-runtime"; import { forwardRef, useCallback } from "react"; import Slide from "@mui/material/Slide"; import Snackbar from "@mui/material/Snackbar"; import { useDefaultProps } from "@hitachivantara/uikit-react-utils"; import { setId } from "../utils/setId.js"; import { useClasses } from "./Banner.styles.js"; import { staticClasses } from "./Banner.styles.js"; import { HvBannerContent } from "./BannerContent/BannerContent.js"; const HvBanner = forwardRef(function HvBanner2(props, ref) { const { id, classes: classesProp, className, title, open, onClose, anchorOrigin = "top", variant, transitionDuration = 300, transitionDirection = "down", container, showIcon, customIcon, actions, actionsCallback, // TODO - remove in v6 onAction, actionsPosition, label, offset = 60, bannerContentProps, ...others } = useDefaultProps("HvBanner", props); const { classes, cx } = useClasses(classesProp); const anchorOriginBanner = { horizontal: "center", vertical: anchorOrigin }; const SlideTransition = useCallback( (properties) => /* @__PURE__ */ jsx( Slide, { ...properties, container, direction: transitionDirection } ), [container, transitionDirection] ); return /* @__PURE__ */ jsx( Snackbar, { ref, id, open, className, classes: { root: cx(classes.root, { [classes.rootClosed]: !open }), anchorOriginTopCenter: classes.anchorOriginTopCenter, anchorOriginBottomCenter: classes.anchorOriginBottomCenter }, style: { [anchorOrigin]: offset }, anchorOrigin: anchorOriginBanner, TransitionComponent: SlideTransition, transitionDuration, ...others, children: /* @__PURE__ */ jsx( HvBannerContent, { id: setId(id, "content"), title, variant, customIcon, showIcon, actions, actionsCallback, onAction, actionsPosition, onClose, ...bannerContentProps, children: label } ) } ); }); export { HvBanner, staticClasses as bannerClasses };