UNPKG

@selfcommunity/react-core

Version:

React Core Components useful for integrating UI Community components (react-ui).

46 lines (44 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useSCAlertMessages = exports.SCAlertMessagesContext = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const notistack_1 = require("notistack"); /** * Creates Global Context * :::tip Context can be consumed in one of the following ways: ```jsx 1. <SCAlertMessagesContext.Consumer>{(options,) => (...)}</SCAlertMessagesContext.Consumer> ``` ```jsx 2. const scAlertMessagesContext: SCAlertMessagesContextType = useContext(SCAlertMessagesContext) ``` ```jsx 3. const scAlertMessagesContext: SCAlertMessagesContextType = useSCAlertMessages(); ```` ::: */ exports.SCAlertMessagesContext = (0, react_1.createContext)({}); /** * #### Description: * This component makes the `intl` available down the React tree. * @param children * @return * ```jsx * <SCAlertMessagesContext.Provider value={{options}}> * ``` */ function SCAlertMessagesProvider({ children = null }) { const [options, setOptions] = (0, react_1.useState)({ maxSnack: 3, autoHideDuration: null }); return ((0, jsx_runtime_1.jsx)(exports.SCAlertMessagesContext.Provider, Object.assign({ value: { options, setOptions } }, { children: (0, jsx_runtime_1.jsx)(notistack_1.SnackbarProvider, Object.assign({}, options, { children: children })) }))); } exports.default = SCAlertMessagesProvider; /** * Let's only export the `useSCAlertMessages` hook instead of the context. * We only want to use the hook directly and never the context component. */ function useSCAlertMessages() { return (0, react_1.useContext)(exports.SCAlertMessagesContext); } exports.useSCAlertMessages = useSCAlertMessages;