File tree Expand file tree Collapse file tree 2 files changed +9
-0
lines changed
[invite-code]/[id]/letters/_components/letter-detail-modal Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ const LetterDetailModal = ({
2323 overlayClassName = { styles . modalOverlay }
2424 contentClassName = { styles . modalContent }
2525 fullScreenOnMobile = { false }
26+ closeOnOverlayClick = { true }
2627 >
2728 < section className = { styles . container } >
2829 { imageUrl && (
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ interface ModalProps {
1212 overlayClassName ?: string ;
1313 contentClassName ?: string ;
1414 fullScreenOnMobile ?: boolean ;
15+ closeOnOverlayClick ?: boolean ;
1516}
1617
1718export default function Modal ( {
@@ -21,6 +22,7 @@ export default function Modal({
2122 overlayClassName,
2223 contentClassName,
2324 fullScreenOnMobile = true ,
25+ closeOnOverlayClick = false ,
2426} : ModalProps ) {
2527 useEffect ( ( ) => {
2628 const handleEscapeKey = ( event : KeyboardEvent ) => {
@@ -42,6 +44,11 @@ export default function Modal({
4244
4345 if ( ! isOpen ) return null ;
4446
47+ const handleOverlayClick = ( event : React . MouseEvent < HTMLDivElement > ) => {
48+ if ( closeOnOverlayClick && event . target === event . currentTarget ) {
49+ onClose ( ) ;
50+ }
51+ } ;
4552
4653 const contentStyles = fullScreenOnMobile
4754 ? `${ styles . content } ${ contentClassName || "" } `
@@ -50,6 +57,7 @@ export default function Modal({
5057 return createPortal (
5158 < div
5259 className = { `${ styles . overlay } ${ overlayClassName || "" } ` }
60+ onClick = { handleOverlayClick }
5361 onKeyDown = { ( event ) => {
5462 if (
5563 ( event . key === "Enter" || event . key === " " ) &&
You can’t perform that action at this time.
0 commit comments