import React from "react"; import { ReactComponent } from "src/typings/global"; import { Button } from "src/components/Button"; import * as Styled from "./styles"; type ControlProps = React.PropsWithChildren<{ setVisible: (status: boolean) => void; }>; type ModalTypes = { Header: ReactComponent; Content: ReactComponent; Controls: React.FC; }; interface ModalProps { visible: boolean; setVisible: React.Dispatch>; } const Header: ReactComponent = ({ children }) => { return ( {children} ); }; const Content: ReactComponent = ({ children }) => { return {children}; }; const Controls: React.FC = ({ children, setVisible }) => { return ( {children} ); }; const Modal: React.FC> & ModalTypes = ({ children, visible, setVisible, }) => { const onClick = (e: React.SyntheticEvent) => { if (e.currentTarget === e.target) { setVisible((v) => !v); } }; return ( {children} ); }; Modal.Header = Header; Modal.Content = Content; Modal.Controls = Controls; export { Modal };