diff --git a/src/components/modal/modal.test.tsx b/src/components/modal/modal.test.tsx index d260b7ed9..65bc5e03b 100644 --- a/src/components/modal/modal.test.tsx +++ b/src/components/modal/modal.test.tsx @@ -14,7 +14,7 @@ describe('Modal', () => { it('renders with default props', () => { const { container } = render() const modalElement = container.firstChild as HTMLElement - expect(modalElement).toHaveClass('bg-white', 'w-80', 'shadow-4', 'sans-serif', 'relative') + expect(modalElement).toHaveClass('bg-white', 'shadow-4', 'sans-serif', 'relative') expect(modalElement).toHaveStyle({ maxWidth: '34em' }) }) @@ -23,7 +23,7 @@ describe('Modal', () => { const { container } = render() const modalElement = container.firstChild as HTMLElement expect(modalElement).toHaveClass(customClass) - expect(modalElement).toHaveClass('bg-white', 'w-80', 'shadow-4', 'sans-serif', 'relative') + expect(modalElement).toHaveClass('bg-white', 'shadow-4', 'sans-serif', 'relative') }) it('renders children correctly', () => { @@ -42,7 +42,7 @@ describe('Modal', () => { const cancelIcon = container.querySelector('svg') expect(cancelIcon).toBeInTheDocument() - expect(cancelIcon).toHaveClass('absolute', 'pointer', 'w2', 'h2', 'top-0', 'right-0', 'fill-gray') + expect(cancelIcon).toHaveClass('absolute', 'pointer', 'w2', 'h2', 'fill-gray') }) it('does not render cancel icon when onCancel is not provided', () => { @@ -242,7 +242,7 @@ describe('Modal', () => { // Check Modal container const modalElement = container.firstChild as HTMLElement expect(modalElement).toHaveClass('test-modal') - expect(modalElement).toHaveClass('bg-white', 'w-80', 'shadow-4', 'sans-serif', 'relative') + expect(modalElement).toHaveClass('bg-white', 'shadow-4', 'sans-serif', 'relative') // Check cancel icon const cancelIcon = container.querySelector('svg') diff --git a/src/components/modal/modal.tsx b/src/components/modal/modal.tsx index f28150b48..59500a441 100644 --- a/src/components/modal/modal.tsx +++ b/src/components/modal/modal.tsx @@ -70,20 +70,18 @@ export const Modal: React.FC = ({ }) => { return (
{onCancel && ( )} diff --git a/src/components/overlay/overlay.tsx b/src/components/overlay/overlay.tsx index ac2f15f55..75ae6501f 100644 --- a/src/components/overlay/overlay.tsx +++ b/src/components/overlay/overlay.tsx @@ -1,33 +1,55 @@ -import React from 'react' -import { Modal } from 'react-overlays' +import React, { useEffect } from 'react' +import { createPortal } from 'react-dom' -type ModalProps = React.ComponentProps - -export interface OverlayProps extends Omit { +export interface OverlayProps { show: boolean onLeave: () => void - hidden: boolean + hidden?: boolean + className?: string + children?: React.ReactNode } -const Overlay: React.FC = ({ children, show, onLeave, className = '', hidden, ...props }) => { - const renderBackdrop: React.FC> = (props) => ( -