The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/client/providers/ModalProvider.js

25 lines
729 B

import { Modal } from '@rocket.chat/fuselage';
import React, { useState, useMemo, memo } from 'react';
import { modal } from '../../app/ui-utils/client/lib/modal';
import ModalPortal from '../components/ModalPortal';
import { ModalContext } from '../contexts/ModalContext';
function ModalProvider({ children }) {
const [currentModal, setCurrentModal] = useState(null);
const contextValue = useMemo(() => Object.assign(modal, {
setModal: setCurrentModal,
}), []);
return <ModalContext.Provider value={contextValue}>
{children}
{currentModal && <ModalPortal>
<Modal.Backdrop zIndex={9999}>
{currentModal}
</Modal.Backdrop>
</ModalPortal>}
</ModalContext.Provider>;
}
export default memo(ModalProvider);