mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-19 01:22:11 +00:00
ToastsContainerContext implemented
This commit is contained in:
parent
504ad74c57
commit
293868aa0e
5 changed files with 43 additions and 0 deletions
|
|
@ -0,0 +1,7 @@
|
|||
const React = require('react');
|
||||
|
||||
const ToastsContainerContext = React.createContext(null);
|
||||
|
||||
ToastsContainerContext.displayName = 'ToastsContainerContext';
|
||||
|
||||
module.exports = ToastsContainerContext;
|
||||
19
src/common/ToastsContainerContext/ToastsContainerProvider.js
Normal file
19
src/common/ToastsContainerContext/ToastsContainerProvider.js
Normal 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;
|
||||
7
src/common/ToastsContainerContext/index.js
Normal file
7
src/common/ToastsContainerContext/index.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
const ToastsContainerProvider = require('./ToastsContainerProvider');
|
||||
const useToastsContainer = require('./useToastsContainer');
|
||||
|
||||
module.exports = {
|
||||
ToastsContainerProvider,
|
||||
useToastsContainer
|
||||
};
|
||||
8
src/common/ToastsContainerContext/useToastsContainer.js
Normal file
8
src/common/ToastsContainerContext/useToastsContainer.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
const React = require('react');
|
||||
const ToastsContainerContext = require('./ToastsContainerContext');
|
||||
|
||||
const useToastsContainer = () => {
|
||||
return React.useContext(ToastsContainerContext);
|
||||
};
|
||||
|
||||
module.exports = useToastsContainer;
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue