@selfcommunity/react-core
Version:
React Core Components useful for integrating UI Community components (react-ui).
46 lines (44 loc) • 1.71 kB
JavaScript
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;
;