className added to Modal props

This commit is contained in:
NikolaBorislavovHristov 2019-08-09 14:16:58 +03:00
parent d7ad6517a7
commit 494f63b679

View file

@ -1,10 +1,11 @@
const React = require('react');
const ReactDOM = require('react-dom');
const PropTypes = require('prop-types');
const classnames = require('classnames');
const { FocusableProvider } = require('../FocusableContext');
const { useModalsContainer } = require('../ModalsContainerContext');
const Modal = ({ children }) => {
const Modal = ({ className, children }) => {
const modalsContainer = useModalsContainer();
const onRoutesContainerDomTreeChange = React.useCallback(({ routesContainer, contentContainer }) => {
return routesContainer.lastElementChild === contentContainer.parentElement.parentElement;
@ -14,13 +15,14 @@ const Modal = ({ children }) => {
}, []);
return ReactDOM.createPortal(
<FocusableProvider onRoutesContainerDomTreeChange={onRoutesContainerDomTreeChange} onModalsContainerDomTreeChange={onModalsContainerDomTreeChange}>
<div className={'modal-container'}>{children}</div>
<div className={classnames(className, 'modal-container')}>{children}</div>
</FocusableProvider>,
modalsContainer
);
};
Modal.propTypes = {
className: PropTypes.string,
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node