UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

94 lines (93 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 { capitalize } from "../utils/helpers.js"; import { setId } from "../utils/setId.js"; import { useClasses } from "./Snackbar.styles.js"; import { staticClasses } from "./Snackbar.styles.js"; import { HvSnackbarContent } from "./SnackbarContent/SnackbarContent.js"; const HvSnackbar = forwardRef(function HvSnackbar2(props, ref) { const { classes: classesProp, className, id, title, open = false, onClose, label, anchorOrigin = { vertical: "top", horizontal: "right" }, autoHideDuration = 5e3, variant, showIcon, customIcon, action, actionCallback, // TODO - remove in v6 onAction, transitionDuration = 300, transitionDirection = "left", container, offset = 60, snackbarContentProps, ...others } = useDefaultProps("HvSnackbar", props); const { classes } = useClasses(classesProp); const anchorOriginOffset = { anchorOriginTop: { top: `${offset}px` }, anchorOriginBottom: { bottom: `${offset}px` } }; const SlideTransition = useCallback( (properties) => /* @__PURE__ */ jsx( Slide, { ...properties, container, direction: transitionDirection } ), [container, transitionDirection] ); return /* @__PURE__ */ jsx( Snackbar, { ref, style: anchorOriginOffset[`anchorOrigin${capitalize(anchorOrigin.vertical)}`], classes, className, id, anchorOrigin, open, onClose, autoHideDuration, transitionDuration, TransitionComponent: SlideTransition, ...others, children: /* @__PURE__ */ jsx( HvSnackbarContent, { id: setId(id, "content"), title, label, variant, customIcon, showIcon, action, actionCallback, onAction, onClose, ...snackbarContentProps } ) } ); }); export { HvSnackbar, staticClasses as snackbarClasses };