openreplay/frontend/app/components/Modal/index.tsx
2022-03-30 18:08:09 +02:00

44 lines
No EOL
870 B
TypeScript

import React, { Component, createContext } from 'react';
import Modal from './Modal';
const ModalContext = createContext({
component: null,
props: {},
showModal: (component: any, props: any) => {},
hideModal: () => {}
});
export class ModalProvider extends Component {
showModal = (component, props = {}) => {
this.setState({
component,
props
});
};
hideModal = () =>
this.setState({
component: null,
props: {}
});
state = {
component: null,
props: {},
showModal: this.showModal,
hideModal: this.hideModal
};
render() {
return (
<ModalContext.Provider value={this.state}>
<Modal />
{this.props.children}
</ModalContext.Provider>
);
}
}
export const ModalConsumer = ModalContext.Consumer;
export const useModal = () => React.useContext(ModalContext);