UNPKG

@selfcommunity/react-core

Version:

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

41 lines (39 loc) 1.43 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { createContext, useContext, useState } from 'react'; import { SnackbarProvider } from '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(); ```` ::: */ export const SCAlertMessagesContext = createContext({}); /** * #### Description: * This component makes the `intl` available down the React tree. * @param children * @return * ```jsx * <SCAlertMessagesContext.Provider value={{options}}> * ``` */ export default function SCAlertMessagesProvider({ children = null }) { const [options, setOptions] = useState({ maxSnack: 3, autoHideDuration: null }); return (_jsx(SCAlertMessagesContext.Provider, Object.assign({ value: { options, setOptions } }, { children: _jsx(SnackbarProvider, Object.assign({}, options, { children: children })) }))); } /** * Let's only export the `useSCAlertMessages` hook instead of the context. * We only want to use the hook directly and never the context component. */ export function useSCAlertMessages() { return useContext(SCAlertMessagesContext); }