UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

109 lines (108 loc) 3.19 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const jsxRuntime = require("react/jsx-runtime"); const React = require("react"); const notistack = require("notistack"); const uikitReactUtils = require("@hitachivantara/uikit-react-utils"); const SnackbarProvider_styles = require("./SnackbarProvider.styles.cjs"); const SnackbarContent = require("../Snackbar/SnackbarContent/SnackbarContent.cjs"); const HvNotistackSnackMessage = React.forwardRef(function HvNotistackSnackMessage2(props, ref) { const { id, message, variant = "success", snackbarContentProps } = props; return /* @__PURE__ */ jsxRuntime.jsx(notistack.SnackbarContent, { ref, children: /* @__PURE__ */ jsxRuntime.jsx( SnackbarContent.HvSnackbarContent, { id, variant, showIcon: true, label: message, role: "none", ...snackbarContentProps } ) }); }); const useHvSnackbar = () => { const snackbarContext = notistack.useSnackbar(); if (!snackbarContext) { throw new Error("useHvSnackbar must be used within an HvSnackbarProvider"); } const { enqueueSnackbar: enqueueNotistackSnackbar, closeSnackbar } = snackbarContext; const enqueueSnackbar = React.useCallback( (message, options = {}) => { const { id, variant = "success", snackbarContentProps, className, ...otherOptions } = options; return enqueueNotistackSnackbar( /* @__PURE__ */ jsxRuntime.jsx( HvNotistackSnackMessage, { id, message, variant, snackbarContentProps } ), { ...otherOptions, className } ); }, [enqueueNotistackSnackbar] ); return React.useMemo( () => ({ enqueueSnackbar, closeSnackbar }), [enqueueSnackbar, closeSnackbar] ); }; const HvSnackbarProvider = (props) => { const { children, notistackClassesOverride, maxSnack = 5, autoHideDuration = 5e3, anchorOrigin = { vertical: "top", horizontal: "right" }, classes: classesProp, className, container, ...others } = uikitReactUtils.useDefaultProps("HvSnackbarProvider", props); const { classes, css, cx } = SnackbarProvider_styles.useClasses(classesProp); const { containerRoot, ...otherNotistackClasses } = notistackClassesOverride || {}; const notistackClasses = { containerRoot: cx( css({ pointerEvents: "all", "& > div > div": { // Overrides notistack extra padding padding: "0 !important", transition: "all 0s ease 0s !important" } }), containerRoot ), ...otherNotistackClasses }; return /* @__PURE__ */ jsxRuntime.jsx( notistack.SnackbarProvider, { classes: notistackClasses, maxSnack, autoHideDuration, anchorOrigin, className: cx(classes.snackItemRoot, className), domRoot: container, ...others, children } ); }; exports.snackbarProviderClasses = SnackbarProvider_styles.staticClasses; exports.HvSnackbarProvider = HvSnackbarProvider; exports.useHvSnackbar = useHvSnackbar;