ToastsContainerContext implemented

This commit is contained in:
svetlagasheva 2020-01-09 16:31:04 +02:00
parent 504ad74c57
commit 293868aa0e
5 changed files with 43 additions and 0 deletions

View file

@ -0,0 +1,7 @@
const React = require('react');
const ToastsContainerContext = React.createContext(null);
ToastsContainerContext.displayName = 'ToastsContainerContext';
module.exports = ToastsContainerContext;

View file

@ -0,0 +1,19 @@
const React = require('react');
const PropTypes = require('prop-types');
const ToastsContainerContext = require('./ToastsContainerContext');
const ToastsContainerProvider = ({ children }) => {
const [container, setContainer] = React.useState(null);
return (
<ToastsContainerContext.Provider value={container}>
{container instanceof HTMLElement ? children : null}
<div ref={setContainer} className={'toasts-container'} />
</ToastsContainerContext.Provider>
);
};
ToastsContainerProvider.propTypes = {
children: PropTypes.node
};
module.exports = ToastsContainerProvider;

View file

@ -0,0 +1,7 @@
const ToastsContainerProvider = require('./ToastsContainerProvider');
const useToastsContainer = require('./useToastsContainer');
module.exports = {
ToastsContainerProvider,
useToastsContainer
};

View file

@ -0,0 +1,8 @@
const React = require('react');
const ToastsContainerContext = require('./ToastsContainerContext');
const useToastsContainer = () => {
return React.useContext(ToastsContainerContext);
};
module.exports = useToastsContainer;

View file

@ -17,6 +17,7 @@ const SharePrompt = require('./SharePrompt');
const Slider = require('./Slider');
const TextInput = require('./TextInput');
const Toast = require('./Toast');
const ToastsContainerContext = require('./ToastsContainerContext');
const routesRegexp = require('./routesRegexp');
const useAnimationFrame = require('./useAnimationFrame');
const useBinaryState = require('./useBinaryState');
@ -47,6 +48,7 @@ module.exports = {
Slider,
TextInput,
Toast,
ToastsContainerContext,
routesRegexp,
useAnimationFrame,
useBinaryState,