diff --git a/frontend/src/components/common/Modal/Modal.stories.tsx b/frontend/src/components/common/Modal/Modal.stories.tsx index 4b460de21..516b8a254 100644 --- a/frontend/src/components/common/Modal/Modal.stories.tsx +++ b/frontend/src/components/common/Modal/Modal.stories.tsx @@ -20,11 +20,14 @@ export const Default = () => { setIsOpen(true); }; + const closeModal = () => { + if (isOpen === true) setIsOpen(false); + }; return ( <> {isOpen && ( - +

This is Default Modal

)} @@ -39,11 +42,15 @@ export const Wide = () => { setIsOpen(true); }; + const closeModal = () => { + if (isOpen === true) setIsOpen(false); + }; + return ( <> {isOpen && ( - +

This is Default Modal

)} @@ -66,7 +73,7 @@ export const WithCloseButton = () => { <> {isOpen && ( - + <>

Modal Title

diff --git a/frontend/src/components/common/Modal/index.tsx b/frontend/src/components/common/Modal/index.tsx index 191c63a62..b9d1a1d57 100644 --- a/frontend/src/components/common/Modal/index.tsx +++ b/frontend/src/components/common/Modal/index.tsx @@ -1,11 +1,11 @@ -import React, { useEffect, useRef, Dispatch } from 'react'; +import React, { useEffect, useRef } from 'react'; import { ModalSizeType } from '@type/modalSize'; import * as S from './style'; interface ModalProps { - onModalClose: Dispatch>; + onModalClose: () => void; children: React.JSX.Element; size: ModalSizeType; } @@ -13,21 +13,17 @@ interface ModalProps { export default function Modal({ onModalClose, children, size }: ModalProps) { const BackDropRef = useRef(null); - const closeModal = () => { - onModalClose(false); - }; - useEffect(() => { const handler = (e: MouseEvent) => { if (e.target === BackDropRef.current) { - closeModal(); + onModalClose(); } }; document.addEventListener('click', handler); return () => document.removeEventListener('click', handler); - }, [BackDropRef, closeModal]); + }, [BackDropRef, onModalClose]); return (