import { Dialog, Transition, TransitionChild } from '@headlessui/react'; import classNames from 'classnames'; import React, { PropsWithChildren } from 'react'; import ReactDOM from 'react-dom'; export interface ModalProps { isOpen: boolean; onClose(): void; maxWidth?: string; } export default function Modal({ isOpen, onClose, maxWidth = '2xl', children, }: PropsWithChildren) { const maxWidthClass = { sm: 'sm:max-w-sm', md: 'sm:max-w-md', lg: 'sm:max-w-lg', xl: 'sm:max-w-xl', '2xl': 'sm:max-w-2xl', }[maxWidth]; if (typeof window === 'undefined') { return null; } return ReactDOM.createPortal(
{/* This element is to trick the browser into centering the modal contents. */}
{children}
, document.body, ); }